【发布时间】:2015-06-11 08:46:17
【问题描述】:
我的 perl 脚本中有一个正则表达式 /Operating System:\s*(.*)/。
我匹配的行是Operating System: Windows XP Service Pack 3 但是,在该行之后输入后有一个新行。所以文本将被视为Operating System: Windows XP Service Pack 3^M。
有没有办法摆脱^M 使用我拥有的当前正则表达式?它捕获Windows XP Service Pack 3^M,但^M 仅在我使用命令提示符或PuTTy 的more 显示内容时才显示。当我使用vi 或更确切地说是vim 进行编辑时,它会显示。
有什么帮助吗?
【问题讨论】:
-
哦,对不起,我发布了错误的正则表达式。我关注了您删除的评论,它适用于
(?=\r)。您可以使用此正则表达式/Operating System:\s*(.*)/将其发布。我会将其标记为已接受。 :) -
我不明白为什么你的正则表达式应该匹配尾随换行符 - 你确定腻子不会做某种“writeln”并在匹配后添加换行符吗? (检查:regex101.com/r/mH4fP7/1)
-
@pastacool 不,那是因为我正在从日志文件中读取,它使用
^M换行。