[英]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.