【发布时间】:2013-01-11 14:25:55
【问题描述】:
当一个或多个字符没有立即遵循前瞻断言时,是否可以使用前瞻来确定这些字符是否存在/不存在?
例如
给定与此类似的正则表达式:
([abc])([def])([ghi])
如果第一组中有“a”,我是否可以只允许第三组中的“i”作为匹配项?
【问题讨论】:
-
在我看来,您真正想要的是向后看,而不是向前看。你在使用 pcre/perl RE 吗?
-
我正在使用 JavaScript,但我只是出于好奇而询问(我目前并没有尝试解决它的问题)。使用 JavaScript,lookbehinds 是不可能的,但我觉得可以通过lookbehind 完成的任何事情也可以通过lookahead 完成。
-
这就是为什么正则表达式标签的常见问题解答说你总是应该为你正在使用正则表达式的语言添加一个标签:) 不,你绝对不能做任何事后能做的事与前瞻。除非您仅在您的正则表达式中有lookbehinds - 那么您可以反转字符串和 正则表达式以将lookbehinds 转换为lookaheads。
-
对不起;添加了“javascript”标签。是的——我肯定忽略了一些向后看的东西。谢谢。
标签: javascript regex regex-lookarounds