我用正則表達式將我的頭撞在牆上。我試圖定義一個完全排除這個文本'系統'的表達式(不區分大小寫),但可以包含'System'一詞,只要它不是這樣。正則表達式不等於字符串
實例:
- 系統== INVALID
- SYSTEM == INVALID
- 系統== INVALID
- 系統== INVALID
- ASD系統==有效
- ASD系統asd ==有效
- 系統asd ==有效
- ASD系統==有效
- ASD ==有效
我用正則表達式將我的頭撞在牆上。我試圖定義一個完全排除這個文本'系統'的表達式(不區分大小寫),但可以包含'System'一詞,只要它不是這樣。正則表達式不等於字符串
實例:
試試這個:
^(?!system$)
還是這整個線路符合:
^(?!system$).*$
正則表達式具有負在其開始處向前看,如果「系統」是整個字符串,則不匹配。
^$|^.{1-5}$|.{7}|^[^s]|^.[^y]|^..[^s]|^...[^t]|[^e].$|[^m]$
但是,如果可以,請使用amarghosh的答案。
(根據以下建議更新)
你可能是指'。{1,5}'。 – Kobi 2010-06-03 09:46:17
嘿,我寫了沒有測試它。我有點震驚,它實際上第一次嘗試。前兩個條款是多餘的,因此: (^。{1-6} $)|(。{8})|(^ [^ s])|(^。[^ y])|(^ .. [^ s])|(^ ... [^ t])|([^ e]。$)|([^ m] $) Nice tip about?!雖然 - 我沒有聽說過它。 – 2010-06-03 09:46:36
oops。該正則表達式允許通過「systuem」。 (並且空字符串失敗,這顯然是可以接受的嗎?) 嘗試: ^ $ | ^。{1-5} $ |。{7} |^[^ s] | ^。[^ y] |^.. [^ s] |^... [^ t] | [^ e]。$ | [^ m] $ – 2010-06-03 09:51:23
只是出於好奇,怎麼樣?!操作員工作?我從來沒有使用過那個(儘管我用了很多正則表達式,我傾向於找到不使用「不」的解決方案)。 – Alxandr 2010-06-03 09:30:24
啊,太簡單了!我確信我嘗試過......!謝謝。 – Kieron 2010-06-03 09:32:42
@Alxandr - 它會檢查當前位置後面的內容。例如,'c(?!4)'將匹配來自'Doc12'的c,但不匹配'Doc42'上的c。環視無法捕獲,因此我不必擔心替換數字,或者檢查邊緣情況(例如,如果c是最後一個字符:'Doc')。 – Kobi 2010-06-03 09:36:18