这是一个示例字符串。我还有更多需要修复的问题:
"måde", "answer" => "råd");
在这个字符串中有 2 个字符 å 的实例。我想使用正则表达式在råd中找到匹配项,同时忽略måde中的 å 。
所以基本上我需要在 å 之后找到匹配项answer。
我认为这(?<=answer)å(?=\;)会奏效,但我对此真的很陌生,如果有人能指出我正确的方向,我将不胜感激。
我之前尝试过问这个问题,但由于某种原因被否决了,所以我试图在这里重新表述它。我希望它足够清楚。
这是一个示例字符串。我还有更多需要修复的问题:
"måde", "answer" => "råd");
在这个字符串中有 2 个字符 å 的实例。我想使用正则表达式在råd中找到匹配项,同时忽略måde中的 å 。
所以基本上我需要在 å 之后找到匹配项answer。
我认为这(?<=answer)å(?=\;)会奏效,但我对此真的很陌生,如果有人能指出我正确的方向,我将不胜感激。
我之前尝试过问这个问题,但由于某种原因被否决了,所以我试图在这里重新表述它。我希望它足够清楚。
向后看(通常)不能是可变长度的,但是通过使用负面的向前看,你告诉它什么不匹配:
å(?!.*answer)
这匹配“å”,但前提是“答案”没有出现在它之后的某个地方。
(?<=answer.*?)å(?=.*?;)应该可以工作(我认为您不需要转义分号,但根据您的应用程序,您可能需要重新转义它)。
本质上:Lookaheads/Lookbehinds 仍然在您所在的位置“匹配”。
编辑:许多正则表达式引擎(包括 Sublime Text 2)不喜欢前瞻/后瞻断言中的量词。改为使用(?<=answer).*?å.*?(?=;)并使用第二个正则表达式在结果匹配中搜索。