我找不到Perl正则表达式的优先规则的官方参考.我能找到的只是了解正则表达式运算符的优先级.但是,它不是perldoc给出的官方参考.
正则表达式只有两个二进制运算符,其中一个是隐式的,而不是用符号表示的。正则表达式也具有许多一元运算符,但是由于对它们的操作数的限制,它们的优先级没有意义。这使得谈论优先级确实很奇怪。
使用以下语句可以更轻松地传达您想要的信息:
以上信息在perlretut中以一种或另一种方式传达。
也就是说,可以建立一个优先级表。由于上述语句传达了您所需的所有信息,因此可以从它们构建优先级表。如下:
a
,\n
,\^
,.
,^
,\w
,[...]
,\1
,(...)
)这与您链接到的页面中的图表匹配。
有趣的是,以下是BNF:
pattern ::= <alternation>
alternation ::= <sequence> <alternation2>
alternation2 ::= "|" <alternation> | ""
sequence ::= <quantified_atom> <sequence> | ""
quantified_atom ::= <atom> <quantified_atom2>
quantified_atom2 ::= <modified_quantifier> | ""
modified_quantifier ::= <quantifier> <modified_quantifier2>
modified_quantifier2 ::= <quantifier_modifier> | ""
Run Code Online (Sandbox Code Playgroud)