Java正则表达式带有积极面貌,背后是负面outlook

我试图从这种字符串中提取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中