2017-06-15 348 views
-1

我正在使用下面的正則表達式從正在工作的LDAP路徑中提取名稱,但在名稱中留下了反斜槓(由於逗號而導致的轉義字符)。語言是C#。從LDAP路徑(C#)中刪除反斜槓轉義字符

使用:

^CN=(.+?),(?:CN|OU|DC|)=.* 

反對:

CN=John\, Smith,OU=Example,DC=Internal,DC=Net 

葉:

John\, Smith 

我怎麼也刪除名稱中的離開約翰·史密斯的反斜線?我一直在努力幾個小時沒有成功。任何幫助真的很感激。

感謝 史蒂芬

+0

什麼是編程語言?您需要通過簡單地用空字符串替換''''後處理匹配值。 –

+0

這個'(。+?)'會匹配每一個東西,也可以匹配\,比如:'(\ w +)\\,\ s +(\ w +)',而不是'。+?' –

回答

0

,你可以做以下,但你將有兩個捕獲組:

CN=(\w+)\\?,\s(\w+),(?:CN|OU|DC|)=.* 
Group 1 = John 
Group 2 = Smith 

然而,爲了使正則表達式更容易,我建議你以匹配所有,你沒有再更換逃脫後來的人物。這應該是更容易。

+0

如果輸入中有多個'\,',它將不起作用。 –

+1

@WiktorStribiżew你怎麼知道可能有多個「\」?這在問題中並不明確。 – hurturk