2013-07-23 76 views
4

我想從這樣的字符串ou=persons,ou=(.*),dc=company,dc=org最後一個字符串立即前面加昏迷不跟的提取物(。*)。在最後一種情況下,這應該給dc=company,dc=orgJava的正則表達式與負的外觀背後積極向前看

看看正則表達式,這似乎是一個積極的背後(前面)負面展望。

所以我已經實現了這個正則表達式:(?<=(,(?!.*\Q(.*)\E))).*,但是它帶着昏迷返回,dc=company,dc=org。我想要沒有昏迷的同樣的事情。我做錯了什麼?

回答

2

非捕獲看來,我已經獨自解決我的問題,圍繞未來的負面看去除捕獲組。它給出了以下正則表達式:(?<=,(?!.*\Q(.*)\E)).*

它與周圍環境中的捕獲組行爲相關聯,如下所述:http://www.regular-expressions.info/lookaround.html部分查看原圖

2

逗號出現是因爲捕獲組包含它。

你可以讓外界捕捉組(?:)

(?<=(?:,(?!.*\Q(.*)\E))).* 
+1

謝謝。它的工作原理,我接受你的答案。正如你所看到的,我用另一種方式自己解決了我的問題,在捕獲組的過程中達到了相同的理由。 – PomCompot

+0

我更喜歡你的回答:) – cyon