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中 。