#!/usr/bin/perl
$mystring = "[2004/04/13] The date of this article.";
if($mystring =~ m/(\d+)/) {
print "The first number is $1.";
}
Perlが戻ってきたが、2004
KikiとKodosも戻ってきました/04/
。なぜ?
答え1
Pythonコード(またはKikiとKodosが何であるか)を提供していないので、確かにわかりにくいですが、私の考えでは、KikiとKodosのパターン構文がスラッシュ区切り文字を必要としないという点でPerlとは異なります。たとえば、Pythonでは次のようになります。
import re
m = re.search('(\d+)', "[2004/04/13] The date of this article.")
print m.group(0)
このパターンにはスラッシュは含まれません。
答え2
Perlでは、正規表現演算子がm
二重スラッシュ/..../
(....
実際には正規表現)ではないことを認識することが重要です。m
を使用している場合はオプションです/
。
以下はすべて同じです。
$mystring =~ m/(\d+)/;
$mystring =~ /(\d+)/;
$var = '(\d+)';
$mystring =~ /$var/;