为什么perl使用g1作为反向引用而其他人使用1?
我很好奇 Perl 正则表达式反向引用和其他人的(C++、grep、emacs,实际上我见过的所有其他用法)之间的语法差异的历史原因。
Perlg1用于组反向引用。其他人都使用看起来更简洁的语法,只是1.
回答
实际上,Perl 确实接受1.
/^(.)1z/s # Equiv* to length($_) == 2 && substr($_, 0, 1) eq substr($_, 1, 1)
g 是一个更新得多且灵活得多的补充。
1 # References the text captured by the nth capture
g{1} g1 # References the text captured by the nth capture
g{-1} g-1 # References the text captured by the nth capture before the g
g{name} # References the text captured by (?<name>...)