0

这是一个示例字符串。我还有更多需要修复的问题:

"måde", "answer" => "råd");

在这个字符串中有 2 个字符 å 的实例。我想使用正则表达式在råd中找到匹配项,同时忽略måde中的 å 。

所以基本上我需要在 å 之后找到匹配项answer

我认为这(?<=answer)å(?=\;)会奏效,但我对此真的很陌生,如果有人能指出我正确的方向,我将不胜感激。

我之前尝试过问这个问题,但由于某种原因被否决了,所以我试图在这里重新表述它。我希望它足够清楚。

4

2 回答 2

3

向后看(通常)不能是可变长度的,但是通过使用负面的向前看,你告诉它什么匹配:

 å(?!.*answer)

这匹配“å”,但前提是“答案”没有出现在它之后的某个地方。

于 2015-02-02T13:57:46.580 回答
1

(?<=answer.*?)å(?=.*?;)应该可以工作(我认为您不需要转义分号,但根据您的应用程序,您可能需要重新转义它)。

本质上:Lookaheads/Lookbehinds 仍然在您所在的位置“匹配”。

编辑:许多正则表达式引擎(包括 Sublime Text 2)不喜欢前瞻/后瞻断言中的量词。改为使用(?<=answer).*?å.*?(?=;)并使用第二个正则表达式在结果匹配中搜索。

于 2015-02-02T13:43:08.777 回答