+ -
当前位置:首页 → 问答吧 → 请教一个正则表达式的写法

请教一个正则表达式的写法

时间:2011-03-08

来源:互联网

想得到以';'开头,但后面不是特定字串的正则表达式该怎么写?

比如我要得到以';'开头,但后面不是from和to的,这么写好像不行:

^;[^(from|to)]

谢谢大家

作者: dmacy   发布时间: 2011-03-08

没做过类似的题目
不过可以这样

sed '/^;/{/from\|to/d}'

作者: chenbin200818   发布时间: 2011-03-08

cat file1
;xxx
;from
;to
;fro

grep -P '^;(?!from|to)' file1
;xxx
;fro

作者: yinyuemi   发布时间: 2011-03-08



QUOTE:
没做过类似的题目
不过可以这样

sed '/^;/{/from\|to/d}'
chenbin200818 发表于 2011-03-08 16:06




    谢谢楼上兄弟的回答。

   不过主要不是为了过滤文本,而是为了匹配,所以删除不太能满足要求呢。

作者: dmacy   发布时间: 2011-03-08

回复 dmacy


  老兄这不是删除 也是过滤 不会修改原文件

作者: chenbin200818   发布时间: 2011-03-08

3楼正解啊,用负向零宽断言,楼主怎么无视了

作者: where27   发布时间: 2011-03-08

本帖最后由 kalmark 于 2011-03-08 17:47 编辑

sed -n  '/^;/p' |sed -rn '/^;(from|to)/!p'

sed -rn '/^;/{/^;(from|to)/!p}'

作者: kalmark   发布时间: 2011-03-08