0

我在 c# 中有以下正则表达式(ship|sub)(?<!^(shipment|subway)$)

当数据不是船运或地铁时,用于检查给定数据是否包含船或子船。

我想在 java 脚本中编写相同的表达式。我尝试了几个带有 javascript negetive look behind 的选项。但它们不符合我的目的:例如:当我将货件交给正则表达式时,它不应该返回货件(因为我在正则表达式中排除了货件).. 然而,当我给会员资格时,它应该给船和匹配结果为真。

你们中的任何人都可以帮助我吗?

4

1 回答 1

1

您的正则表达式也不应该在 .NET 中工作。一旦你匹配了“ship”或“sub”,否定的lookbehind断言总是正确的:你匹配了“ship”或“sub”,所以前面的字符永远不会是“ment”或“bway”,因此总是通过断言. 相反,您的意思一定是:

\b(ship(?!ment)|sub(?!way))\b

这也应该在 Javascript 中工作,因为它只使用否定的前瞻断言。

于 2013-01-28T14:24:02.623 回答