有人告诉我,我需要在Perl正则表达式文字中转义分号。也就是说,要匹配包含分号的行,我应该使用/\;/
而不是/;/
。
从我读过的内容来看,分号在正则表达式文字中没有特殊含义,因此转义它似乎是不必要的。我做了一些实验,/;/
似乎工作得很好。启用警告并且use strict;
编译指示生效后,perl
不会抱怨。
/\;/
优于/;/
是否有某种原因?这个版本是依赖吗?
答案 0 :(得分:14)
绝对不需要以正则表达式模式转义分号。在近十年的时间里,我一直没有使用Perl,我怀疑它曾经存在过。
可以在perldoc perlreref
中找到特殊字符和转义序列的简明摘要。
答案 1 :(得分:5)
也许有人认为分号需要转义,因为它们的编辑器语法突出显示被嵌入的分号混淆了。根据我的经验,大多数编辑在处理Perl的语法时遇到了很多麻烦。请记住,Only perl can parse Perl。
答案 2 :(得分:3)
也许这是在命令行中使用perl单行而不引用的习惯,所以';'将剩下的部分拆分成另一个命令?无论如何,就像其他人说的那样,没有必要。
答案 3 :(得分:1)
没有必要逃避它。
答案 4 :(得分:1)
没有。 /;/
应始终正常工作。
答案 5 :(得分:0)
是的,分号不是元字符,所以我猜它不需要转义。