[英]Match words not beginning with &
我需要一個正則表達式,可以匹配不以&字符開頭的單詞(不區分大小寫)
例如搜索字符串Foo
然后匹配將是這樣的:
像下面這樣使用否定的后置斷言,
(?i)(?<!&)foo
說明:
(?i)
不區分大小寫的修飾符。 (?<!&)
后面的否定表示匹配將以&
字符開頭,但不能為。 foo
匹配字符串foo 對於js,
/(?:[^&]|^)(foo)/igm
從組索引1獲取所需的字符串。
> var s = "Foo $Foo %Foo &Foo Foo";
undefined
> var re = /(?:[^&]|^)(foo)/igm;
undefined
> var m;
undefined
> while ((m = re.exec(s)) != null) {
... console.log(m[1]);
... }
Foo
Foo
Foo
Foo
通過string.replace
方法。
> var s = "Foo $Foo %Foo &Foo Foo";
undefined
> s.replace(/([^&]|^)(foo)/igm, "$1bar")
'bar $bar %bar &Foo bar'
對於模式,這應該是Java友好的。 它使用非捕獲組,並確保foo
不以“&”號開頭(&)
(?:[^&])[fF][oO][oO]
非與字符的非foo字符將顯示在比賽中,但不會出現在結果/捕獲中。
編輯:您可以在JavaScript regex語法中使用“ i”標志來調用不區分大小寫的模式modiefer。 那么該模式就是(?:[^&])foo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.