1

我需要编写匹配字符串的正则表达式(.NET):以字母开头,可以包含字母、数字、句点、连字符、1 个下划线并遵循“@”。我尝试了以下一个,但例如它与“a_bc12@”不匹配。

如何解决?

^[A-Za-z][A-Za-z0-9-]+_{0,1}(?=@)

已编辑:它应该包含 {3,10} 长度。

4

3 回答 3

2

您将需要再次允许下划线后的字符:

/^[A-Za-z][A-Za-z0-9\.-]*_?[A-Za-z0-9\.-]*(?=@)/

此外,我还添加了句点,并使下划线前后的字符串可选。

于 2012-05-02T09:11:01.817 回答
1

尝试将其修改为:

[A-Za-z]+[A-Za-z0-9-/.]*_[A-Za-z0-9-/.]*@`

当你在表达式后使用 + 时,表示“一次或多次” 当你使用 * 时,表示“零次或多次”

希望能帮助到你。

于 2012-05-02T09:15:34.713 回答
0

试试这个:

^[A-Za-z][A-Za-z0-9-\.]*_{0,1}(?=@)

您的使用+是一种或多种情况;您希望在首字母之后有零个或多个,即*.

于 2012-05-02T09:09:54.327 回答