我完全新的Perl和嘗試設計一個詞法分析器,我所遇到的含義是:甚至可以通過多個網站我不明白的打算後什麼是QR的//在Perl
my @token_def =
(
[Whitespace => qr{\s+}, 1],
[Comment => qr{#.*\n?$}m, 1],
);
含義。
我完全新的Perl和嘗試設計一個詞法分析器,我所遇到的含義是:甚至可以通過多個網站我不明白的打算後什麼是QR的//在Perl
my @token_def =
(
[Whitespace => qr{\s+}, 1],
[Comment => qr{#.*\n?$}m, 1],
);
含義。
qr//
在「Regexp Quote-Like Operators」部分記錄在perlop中。
就像qq"..."
又名"..."
允許你構造一個字符串,qr/.../
允許你構造一個正則表達式。
$s = "abc"; # Creates a string and assigns it to $s
$s = qq"abc"; # Same as above.
print("$s\n");
$re = qr/abc/; # Creates a compiled regex pattern and assigns it to $x
print "match\n" if $s =~ /$re/;
爲qr/.../
引號規則非常相似qq"..."
的。唯一的區別是\
後跟一個非單詞字符不變。
qr//
是適用於模式匹配和相關活動的引用類運算符之一。
從perldoc:
這個操作符引號(以及可能編譯)其作爲正則表達式STRING。 STRING的插入方式與m/PATTERN /中的PATTERN相同。如果使用
'
作爲分隔符,則不執行插值。
從:
的QR //運營商創造一流的正則表達式。插值他們進入比賽運營商使用它們:
my $hat = qr/hat/;
say 'Found a hat!' if $name =~ /$hat/;
...或多個regex對象組合成複雜的圖案:
my $hat = qr/hat/;
my $field = qr/field/;
say 'Found a hat in a field!'
if $name =~ /$hat$field/;
like($name, qr/$hat$field/,
'Found a hat in a field!');
http://perldoc.perl.org/functions/qr html的 – Mat