Cra*_*ent 81
什么背景/语言?有些语言/
用作模式分隔符,所以是的,您需要将其转义,具体取决于哪种语言/上下文.你通过在它前面放一个反斜杠来逃避它:\/
对于某些语言(如PHP),你可以使用其他字符作为分隔符,因此你不需要转义它.但AFAIK在所有语言中,唯一具有特殊意义的/
是它可能是指定的模式分隔符.
Dav*_*idO 35
以下是一些选项:
在Perl中,您可以选择备用分隔符.你并不局限于此m//
.你可以选择另一个,比如m{}
.然后逃避是没有必要的.由于事实上,达米安康威在"Perl的最佳实践"断言m{}
是应该是所使用的唯一其它分隔,并且这通过的Perl ::评论家(上CPAN)加强.虽然你可以逃脱使用各种其它分隔符,//
并且{}
似乎是最清晰的破译以后.但是,如果这些选择中的任何一个导致过多的转义,请选择哪一个最适合于易读性.常见的例子是m(...)
,m[...]
和m!...!
.
如果您不能或不想使用备用分隔符,则可以使用反斜杠转义正斜杠: m/\/[^/]+$/
例如(使用可能变为m{/[^/]+$}
更清晰的备用分隔符).逃离用反斜杠反斜杠是足够共同赢得了一个名字和维基百科页面:倾斜牙签综合症.在正则表达式那里只是一个实例,逃避斜线可能不会上升到被认为是妨碍易读性水平,但如果它开始失控,如果你的语言允许备用分隔符为perl做,那会是首选的解决方案.