2016-04-26 53 views
0

我試圖獲取一個特定的單詞,但不是如果字符串「,」在它前面。我試過正則表達式不是逗號和空格之前的空格

((?!\,\s))(word) 

但是,那是行不通的。我期待它匹配單詞'單詞'。我究竟做錯了什麼?

+0

你需要回顧後不預讀。什麼是正則表達式? – anubhava

+0

即時通訊在xslt,如果有幫助。 – villeroy

+0

您發佈的文本是'','那將是一個空格,然後逗號。 – sln

回答

1

您的負面評級爲。嘗試一下消極落後

(?<!,\s)word 

另外請注意,你不需要你最編碼的括號。

0

我同意答案是一個向後看的斷言。
區別在哪裏。

任何以斷言開頭的正則表達式會變得很慢。
原因是斷言無法優化到插入點。

由於這個原因,它可能看起來很大,但它在性能
從5到20倍。

樣品

word asdfasdf afsdbbasbfasfb 
adbbadfb, afdsbafbdsasfb adb, , , , 
word, word word, word 

基準

Regex1: (?<!,\s)word 
Options: <none> 
Completed iterations: 50/50  (x 1000) 
Matches found per iteration: 3 
Elapsed Time: 0.70 s, 703.28 ms, 703277 µs 


Regex2: word(?<!,\sword) 
Options: <none> 
Completed iterations: 50/50  (x 1000) 
Matches found per iteration: 3 
Elapsed Time: 0.17 s, 170.21 ms, 170207 µs 
相關問題