我是否需要在Perl正则表达式文字中转义分号?

时间:2009-07-29 14:26:10

标签: regex perl syntax escaping

有人告诉我,我需要在Perl正则表达式文字中转义分号。也就是说,要匹配包含分号的行,我应该使用/\;/而不是/;/

从我读过的内容来看,分号在正则表达式文字中没有特殊含义,因此转义它似乎是不必要的。我做了一些实验,/;/似乎工作得很好。启用警告并且use strict;编译指示生效后,perl不会抱怨。

/\;/优于/;/是否有某种原因?这个版本是依赖吗?

6 个答案:

答案 0 :(得分:14)

绝对不需要以正则表达式模式转义分号。在近十年的时间里,我一直没有使用Perl,我怀疑它曾经存在过。

可以在perldoc perlreref中找到特殊字符和转义序列的简明摘要。

答案 1 :(得分:5)

也许有人认为分号需要转义,因为它们的编辑器语法突出显示被嵌入的分号混淆了。根据我的经验,大多数编辑在处理Perl的语法时遇到了很多麻烦。请记住,Only perl can parse Perl

答案 2 :(得分:3)

也许这是在命令行中使用perl单行而不引用的习惯,所以';'将剩下的部分拆分成另一个命令?无论如何,就像其他人说的那样,没有必要。

答案 3 :(得分:1)

没有必要逃避它。

答案 4 :(得分:1)

没有。 /;/应始终正常工作。

答案 5 :(得分:0)

是的,分号不是元字符,所以我猜它不需要转义。