Perl正则表达式:$1的使用、qr/…/操作符与匹配操作符详解
1. $1在正则表达式中的使用
在正则表达式之外, \1 不能作为反向引用使用,应使用变量 $1 。 $1 指向之前一次成功匹配中所匹配到的静态文本字符串。而 \1 是真正的正则元字符,当正则驱动的NFA(非确定有限自动机)到达 \1 时,它会匹配与第一个带括号的子表达式所匹配文本相似的文本。随着NFA在搜索匹配过程中进行跟踪和回溯, \1 所匹配的内容可能会发生变化。
另一个问题是, $1 和其他匹配后变量是否能在正则操作数中使用。它们通常用于嵌入式代码和动态正则结构的代码部分,但在正则表达式中,若 $1 出现在正则操作数的“正则部分”,它会被当作普通变量处理,其值会在匹配或替换操作开始前进行插值。因此,对于正则表达式来说, $1 的值与当前匹配无关,而是来自之前的某次匹配。
2. qr/…/操作符与正则对象
qr/.../ 是一个一元操作符,它接受一个正则操作数并返回一个正则对象。返回的对象可作为后续匹配、替换或分割操作的正则操作数,也可作为更大正则表达式的一部分。
正则对象主要用于将正则表达式封装成一个单元,以便构建更大的表达式,同时也为了提高效率,能精确控制正则表达式的编译时机。
可以选择自己的定界符,如 qr{...}
超级会员免费看
订阅专栏 解锁全文
104

被折叠的 条评论
为什么被折叠?



