5

我试图从这种字符串中提取ou=persons,ou=(.*),dc=company,dc=org最后一个字符串,前面是逗号而不是(。*)。在最后一种情况下,这应该给出dc=company,dc=org.

看看正则表达式,这似乎是负面展望的正面展望(在此之前)。

所以我已经实现了这个正则表达式:(?<=(,(?!.*\Q(.*)\E))).*,但它,dc=company,dc=org以昏迷状态返回。我想要没有昏迷的同样的东西。我做错了什么?

4

2 回答 2

2

出现逗号是因为捕获组包含它。

您可以使外部捕获组不捕获(?:)

(?<=(?:,(?!.*\Q(.*)\E))).*
于 2013-07-23T15:29:01.867 回答
2

看来我已经单独解决了我的问题,删除了负面展望周围的捕获组。它给出了以下正则表达式:(?<=,(?!.*\Q(.*)\E)).*.

它与在环视中捕获组的行为相关联,如下所述:http://www.regular-expressions.info/lookaround.htmlLookaround Is Atomic部分中。

于 2013-07-23T15:30:44.753 回答