修飾子 /a に正規表現Perl

が正規表現を用いてPerlの使用が可能で修飾 /a.

追加修飾 /a の変化の挙動 \d, \w\s:

  • 場合、修飾子 /a は指定されていませんが、これらのセットを含む多くの文字をUnicodeで扱います。
  • の存在下での修飾 /aでは、これらの文字セットのみの文字のASCII範囲

行動の変化 \D, \W\S.

\d

指定した場合には改 /a 文字セット \d日 のみ10文字— の 09. 場合、修飾子 /a が設定されていない \d すべての 多くの文字は桁数にUnicodeで扱います。

この例のコード:

▶ Run
#!/usr/bin/perl

use utf8;
use open qw(:std :utf8);
use strict;
use warnings;

my $str = '٢4௪၂၃';

if ($str =~ /(\d+)/) {
    print $1;
}

プログラムを表示何で撮影したものを使用 \d+ のテキスト ٢4௪၂၃. このコードの修飾子 /a が指定されていないため \d すべてはこれを、図 Unicodeでは10桁の数字0-9のものその他の文字 使りることができます。

このコードを追加修飾 /a: if ($str =~ /(\d+)/a) {のプログラム 表示単一の文字数 4は、この場合 \d だけ10文字です。

例文字Perlと考えてUnicodeできたこのコード:

▶ Run
#!/usr/bin/perl

use utf8;
use open qw(:std :utf8);
use strict;
use warnings;

foreach my $i (0..65535) {
    print chr($i) if chr($i) =~ /\d/;
}

\s

使用時 /a 多くの文字 \s のPerl版5.18 5文字 だからPerl5.18を含む6文字:

  • "\t", chr(9), "\N{CHARACTER TABULATION}"
  • "\n", chr(10), "\N{LINE FEED}"
  • "\x0B", chr(11), "\N{LINE TABULATION}" —Perl5.18
  • "\f", chr(12), "\N{FORM FEED}"
  • "\r", chr(13), "\N{CARRIAGE RETURN}"
  • ' ', chr(32), "\N{SPACE}"

場合、修飾子 /a が設定されていない \s む文字(人 ある空白文字をUnicode)。

\w

使用時 /a 文字数 \w を含む63シンボルの作品と同じ として [A-Za-z0-9_].

/a を使用しないで \w 以上50万種のUnicode文字です。

Perl版

修飾子 /a 初登場Perl5.14. しようとした場合に利用で 前5.14られなくなることもありますエラーコード実行を停止いたします。 例えば、コード 'abc' =~ /\w/a; 上Perl5.10に修正する必要があります:

Bareword found where operator expected at script.pl line 3, near "/\w/a"
    (Missing operator before a?)
syntax error at script.pl line 3, near "/\w/a"
Execution of script.pl aborted due to compilation errors.

その他の記事