2014-04-16 77 views
0

我目前使用\w+([email protected])表達式僅從AD憑證中提取用戶名。 但是,當用戶名有一個「點」時,這會導致問題。正則表達式 w +(?= @)

誰能幫我修改這個表情,這樣我就可以獲取整個用戶名,它看起來像

mary.jane

+3

其'[\ w。] +':-) –

回答

1

爲此,您需要以允許不止單詞字符(\w)。您可以通過使用character class來完成此操作。您可以通過使用方括號定義一個:

[\w.]+ 

這將至少匹配一個列的字符在方括號內。在角色類中,有不同的角色是特殊的,所以你不需要逃避.,就像你不得不在課外。

0

試試這個:

^.+([email protected]) 

這意味着from beginning of line till you find @

+1

也許應該成爲非貪婪'+'。?。 – Biffen

+0

是的,我同意。但在一個電子郵件地址中,只能有一個「@」,這樣就不會有什麼區別。不知道AD是否在用戶名中支持多個「@」。 –

+1

啊,我一定錯過了它是一個電子郵件地址,但是他們可以在本地部分包含「@」。 [正則表達式真的不是這項工作的正確工具。](http://ex-parrot.com/~pdw/Mail-RFC822-Address.html) – Biffen