2013-10-28 23 views
0

我有應包含的8位數字的形式那麼只有條目的分號,然後一些文本的文本文件:正則表達式查找行其中第8位是不是一個分號

12345678;some more text

我希望找到那些不是以8個數字開頭的條目,然後是分號。我能找到的正項與

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

但我不知道如何「扭轉」我正則表達式...

任何幫助表示讚賞!

謝謝大家。

+2

爲什麼不否定你的病情在你的語言?似乎是最簡單的方法 –

+0

我在記事本++中使用這個正則表達式,所以我不包裝的正則表達式在.NET或Java等。 – DotNetDeveloper

回答

1

這將是

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

此正則表達式僅匹配,如果它無法在字符串的開始匹配8個數字和一個分號(使用negative lookahead assertion)。

如果您希望正則表達式與該行中的文本匹配(如果滿足此條件),則可以在lookahead之後添加.*。沒有它,你只會得到一個真/假的結果。

0

根據正則表達式庫使用:^[0-9]{8}[^;].*

0

簡單的方法是反轉的比賽條件,而創造轉化的正則表達式

grep -v '^[0-9]{8};' file 
相關問題