2016-02-26 44 views
0

這沒有特定的詞是後續: javascript regex - look behind alternative?匹配第二個字背後

在我的情況,我希望只匹配第二個字時,有沒有這preceeds術語特定詞。與之前的問題一樣,我需要一個不利用後視技術的解決方案。

我要找排除提到諸如下列:

patient has a history of pulmonary edema 

使用表達式:

((?!pulmonary).{10})\bedema 

但考慮到下面的句子:

Continuing dyspnea and lower-extremity edema 

我想該匹配僅返回edema而不是extremity edema

+0

[這個正則表達式怎麼樣](https://regex101.com/r/hI1yZ8/2)。這會像預期的那樣嗎?在組1中匹配。 –

+0

感謝您的快速回復。顯然,正則表達式和我的JavaScript行爲類似,並在最後一種情況下將整條線視爲匹配「持續呼吸困難和下肢水腫」 –

+0

您是否[檢查/訪問第一組?](http://stackoverflow.com/問題/ 432493 /如何訪問匹配組中的一個JavaScript的正則表達式)請參閱[JS小提琴](https://jsfiddle.net/1LL57c7h/) –

回答

1

請嘗試以下模式:

(?!pulmonary).{10}\b(edema)\b 

演示是here

+0

我可能不會問得很清楚。我正在匹配'肢端水腫',但我想匹配的只是下面的'水腫':_繼續呼吸困難和下肢水腫_排除術語'水腫'的標準是它包含相應的9個字符偏移量(例如'123456789 ),但我想放棄作爲模式返回的內容中的第一個單詞(例如,不包括'123456789') –

+0

由於我的時間限制用完了,所以對編輯不好的道歉。 –

+0

它給出的匹配只是'edema'。 (?!pulmonary)是一種'消極的前瞻',而不是'後視技術'。 '看後面的技術'看起來像'(?<= ...)'或'(?<!...)'。 – Quinn

相關問題