在正则expression式中转义正斜杠
我的问题是一个简单的问题,它是关于正则expression式转义。 你必须摆脱正斜杠/
正则expression式? 你怎么去做呢?
什么语境/语言? 有些语言使用/
作为模式分隔符,所以是的,您需要转义它,具体取决于哪种语言/上下文。 你可以通过在它前面加一个反斜杠来逃避它: \/
对于一些语言(比如PHP),你可以使用其他字符作为分隔符,因此你不需要转义它。 但是在所有的语言中,唯一特别的意义就是它可能是指定的模式分隔符。
在Perl中,你可以select其他的分隔符。 你并不局限于m//
。 你可以select其他的,比如m{}
。 然后逃脱是没有必要的。 事实上,Damian Conway在“Perl最佳实践”中断言, m{}
是唯一应该使用的备用分隔符,Perl :: Critic(在CPAN上)加强了这一分隔符。 虽然您可以避开使用各种替代分隔符,但是//
和{}
似乎是以后最清晰的解码方式。 但是,如果这些select中的任何一个导致太多逃逸,select哪一个最适合易读。 常见的例子有m(...)
, m[...]
和m!...!
。
使用反斜杠\
或select一个不同的分隔符,即m#.\d#
而不是/.\d/
“在Perl中,如果在字母m之前加上/正则expression式分隔符,几乎可以将其改为任何其他特殊字符比赛);“
如果分隔符是/,则需要转义。