【发布时间】:2011-02-10 23:43:39
【问题描述】:
我使用 perl 来检查一些文本输入的正则表达式模式,但有一个模式不适用于 perl -pe。
以下模式不适用于命令调用:
s![a-zA-Z]+ +(?:.*?)/(?:.*)Comp-(.*)/.*!$1!
我使用 linux shell。以下电话我用来测试我的正则表达式:
cat test | perl -pe 's![a-zA-Z]+ +(?:.*?)/(?:.*)Comp-(.*)/.*!$1!'
文件测试:
A MaintanceGie?\195?\159mannFlock/System/Comp-Database.cpp MaintanceGie?\195?\159mannFlock/System/Comp-Cache/abc.h
结果:
A MaintanceGie?\195?\159mannFlock/System/Comp-Database.cpp 缓存
如何删除第一个结果?
感谢您的建议。
【问题讨论】:
-
你用的是什么外壳?你的输入是什么?您的预期输出是什么?
-
那个古怪的八进制反斜杠到底是什么——呃,我的意思是非八进制——在那里搞砸了?对我来说当然是编码问题!
-
输出是特殊字符ok。