2014-04-16 76 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