2015-05-02 42 views
0

記事本++,我試圖匹配行而不是從32個連續空格開始。正則表達式:匹配行不是以Notedpad中的32個空格開始++

我已經有一個匹配行開始連續的32位正則表達式:^ {32}.*$

我試着用^[^ {32}].*$^[^({32})].*$使用相同的錯誤的結果,不匹配,只有24位,例如線。

+0

那麼以* more *開頭的行是32位的呢? – Kobi

+0

@Kobi我編輯了這個問題,並用*連續*替換了*完全*這個詞,以便更清楚我的意思。 – cprcrack

+0

@cprcrack:你可以添加,如果你正在尋找*精確* 32的空間,也就是說,33個空格也應該匹配? (我在回答中解決了這個問題,但不知道我選擇了哪兩個建議。) – usr2564301

回答

3

你直括號內的一切形成一個單一的字符類,所以

[^ {32}] 

比賽(不)任何單個字符{32}的。 「(不)」是因爲第一個字符是否定。 (它沒有幫助。)

你所尋找的是一個負前瞻:

^(?! {32}).+$ 

這種測試的每一行,並選擇它,如果它後面沒有至少 32位。要不僅僅匹配32個空格而且不多於另一個,請在第一個空間內使用另一個預覽:

^(?! {32}(?!)).+$ 
1

嘗試使用負向預測。

(?!^ {32}[^ ]*$)^ +.*$ 

第一部分(在圓括號中)的作用是:匹配一行以32個空格開始的行,並排除它。

最後,第二部分匹配所有以任意數量的空格開頭的行。

相關問題