[英]Java regex with a positive look behind of a negative look ahead
我想从这样的字符串的提取ou=persons,ou=(.*),dc=company,dc=org
最后一个字符串立即被 后面没有昏迷(。*) 开头 。 在最后一种情况下,这应该给dc=company,dc=org
。
看看正则表达式,这看起来是一个积极的背后(前面)负面展望。
所以我已经实现了这个正则表达式: (?<=(,(?!.*\\Q(.*)\\E))).*
,但它返回,dc=company,dc=org
和昏迷。 我希望没有昏迷的同样的事情。 我做错了什么?
出现逗号是因为捕获组包含它。
你可以用(?:)
使外部捕获组无法捕获
(?<=(?:,(?!.*\Q(.*)\E))).*
似乎我已经单独解决了我的问题,取消了前方负面观察周围的捕获组。 它给出了以下正则表达式: (?<=,(?!.*\\Q(.*)\\E)).*
。
它与周围环境中捕获组的行为相关联,如下所示: http : //www.regular-expressions.info/lookaround.html在Lookaround Is Atomic中 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.