Perl、Kikki、Kodosの正規表現処理の違い

Perl、Kikki、Kodosの正規表現処理の違い
#!/usr/bin/perl

$mystring = "[2004/04/13] The date of this article.";
if($mystring =~ m/(\d+)/) {
        print "The first number is $1.";
}

Perlが戻ってきたが、2004Kikiと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/;

関連情報