0

我有一个文本文件,它应该只包含 8 位数字形式的条目,然后是分号,然后是更多文本:

12345678;some more text

我想找到那些不以八个数字开头然后跟一个分号的条目。我可以找到积极的条目

^[0-9]{8};.*

但我不确定如何“反转”我的正则表达式......

任何帮助表示赞赏!

谢谢大家。

4

3 回答 3

1

那将是

^(?![0-9]{8};)

此正则表达式仅在无法匹配字符串开头的 8 位数字和分号时才匹配(使用否定的前瞻断言)。

.*如果您希望正则表达式在满足此条件的情况下实际匹配该行中的文本,则可以在前瞻之后添加。没有它,您只会得到真/假结果。

于 2013-10-28T06:51:57.517 回答
0

根据使用的正则表达式库:^[0-9]{8}[^;].*

于 2013-10-28T07:17:44.150 回答
0

简单的方法是反转匹配条件而不是创建反转正则表达式

grep -v '^[0-9]{8};' file
于 2013-10-28T07:18:01.143 回答