記事本++,我試圖匹配行而不是從32個連續空格開始。正則表達式:匹配行不是以Notedpad中的32個空格開始++
我已經有一個匹配行開始連續的32位正則表達式:^ {32}.*$
我試着用^[^ {32}].*$
和^[^({32})].*$
使用相同的錯誤的結果,不匹配,只有24位,例如線。
記事本++,我試圖匹配行而不是從32個連續空格開始。正則表達式:匹配行不是以Notedpad中的32個空格開始++
我已經有一個匹配行開始連續的32位正則表達式:^ {32}.*$
我試着用^[^ {32}].*$
和^[^({32})].*$
使用相同的錯誤的結果,不匹配,只有24位,例如線。
你直括號內的一切形成一個單一的字符類,所以
[^ {32}]
比賽(不)任何單個字符,
{
,3
,2
和}
的。 「(不)」是因爲第一個字符是否定。 (它沒有幫助。)
你所尋找的是一個負前瞻:
^(?! {32}).+$
這種測試的每一行,並選擇它,如果它後面沒有至少 32位。要不僅僅匹配32個空格而且不多於另一個,請在第一個空間內使用另一個預覽:
^(?! {32}(?!)).+$
匹配小於32位,其次是非空間:http://www.regexr.com/3au2l
^ {0,31}[^ ]
匹配 「不是32位」 使用負先行:http://regexr.com/3au2o
^(?! {32})
在這兩種情況下,如果需要,請添加.*
以匹配整條生產線。
嘗試使用負向預測。
(?!^ {32}[^ ]*$)^ +.*$
第一部分(在圓括號中)的作用是:匹配一行以32個空格開始的行,並排除它。
最後,第二部分匹配所有以任意數量的空格開頭的行。
那麼以* more *開頭的行是32位的呢? – Kobi
@Kobi我編輯了這個問題,並用*連續*替換了*完全*這個詞,以便更清楚我的意思。 – cprcrack
@cprcrack:你可以添加,如果你正在尋找*精確* 32的空間,也就是說,33個空格也應該匹配? (我在回答中解決了這個問題,但不知道我選擇了哪兩個建議。) – usr2564301