2016-02-26 47 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

相关问题