【发布时间】:2011-09-03 00:49:17
【问题描述】:
假设我有$str = "onetwo"。
我想编写一个忽略空格的 reg ex 替换命令(这使其更具可读性):
$str =~ s/
one
two
/
three
four
/x
这会产生"\nthree\nfour\n"(其中\n 是换行符),而不是"threefour"。基本上,/x 选项忽略替换匹配端的空格,但不忽略替换端。我怎样才能忽略替换端的空格?
【问题讨论】:
-
如果您正在寻找“可读”,请远离正则表达式
-
@Ken,你可能是在半开玩笑,但我正在使用一个非常复杂的 reg ex,需要随着时间的推移进行管理,例如描述 here
-
@Ken Browning,简单的正则表达式模式可以写得很清晰,而更复杂的正则表达式模式需要几页非正则表达式代码才能实现,因此避免正则表达式匹配不会使事情更具可读性。一个常见的错误是人们忘记了它不再可读的替代方案。像其他一切一样,记录正则表达式模式的复杂部分,你就很好了。
标签: regex perl whitespace matching substitution