【发布时间】:2012-12-05 08:18:55
【问题描述】:
我正在尝试解决如何使用 perl(来自 shell)来匹配换行符。以下:
(echo a b c d e; echo f g h i j; echo l m n o p) | perl -pe 's/(c.*)/[$1]/'
我明白了:
a b [c d e]
f g h i j
l m n o p
这是我所期望的。但是当我在我的正则表达式末尾放置一个/s 时,我得到了这个:
a b [c d e
]f g h i j
l m n o p
我期望并希望它打印的是这样的:
a b [c d e
f g h i j
l m n o p
]
是我的正则表达式有问题,还是我的 perl 调用标志有问题?
【问题讨论】:
-
我认为,使用
/s应该可以完成这项工作。但是,您也可以使用[\S\s]*代替.* -
@Rohit Jain:不够:他正在使用 -p 开关调用 Perl,因此需要启用 slurp 模式。