标题:
[问题求助]
如何用一个正则表达式在特定位置排除字符串
[打印本页]
作者:
weichenxiehou
时间:
2012-11-22 12:57
标题:
如何用一个正则表达式在特定位置排除字符串
本人遇到一个需求,如何用正则表达式在某个位置排除字符串而不是单个字符。
如:请用一个正则表达式匹配出1.txt中具有如下特征的行。
2009-10-2 16:23:52 bat-batman
其中第一列为日期,月份和日期可能为1位或2位,第二列为时间,第三列为名称,关键就在这里,不能为“bat-weichenxiehou”,其他都可以。
要求是只能用一个正则匹配该行,管道啊正则嵌套什么的不考虑,零宽断言好像可以,但是sed和gawk好像不支持,请问各位有什么解决办法吗?具体问题我已经解决,只是想将这个问题泛化,像sed和awk这种工具如何排除字符串?
作者:
tmplinshi
时间:
2012-11-22 13:22
本帖最后由 tmplinshi 于 2012-11-22 13:31 编辑
onigsed - 支持 Oniguruma (ver. 2.5.0) 和 Perl 5 正则表达式的 sed (4.1.5)
http://bathome.net/thread-20202-1-1.html
onigsed -R "/[0-9]{4}(-[0-9]{1,2}){2} ([0-9]{2}:){2}[0-9]{2} (?!bat-weichenxiehou)/!d" a.txt
________________________________________________________________________________________
http://baiy.cn/utils/f/index.htm
f a.txt -r:"***:[0-9]{4}(-[0-9]{1,2}){2} ([0-9]{2}:){2}[0-9]{2} (?!bat-weichenxiehou)"
作者:
Demon
时间:
2012-11-22 13:44
第一次听说零宽断言这个词,不得不佩服翻译人员水平之高,居然能想出那么晦涩的词来表达Lookahead和Lookbehind
作者:
weichenxiehou
时间:
2012-11-22 13:54
回复
2#
tmplinshi
多谢,晚上回去试试这两个工具。
作者:
BAT-VBS
时间:
2012-11-22 14:50
回复
3#
Demon
这位大神能否给个不晦涩的词学习一下啊
欢迎光临 批处理之家 (http://www.bathome.net/)
Powered by Discuz! 7.2