我正在尝试编写一个匹配字符串的正则表达式,除了字符串和下划线。
到目前为止,我有/[A-Za-z0-9]+/
但我不知道要包含哪些内容以使其不需要下划线。
更新:
应该让这个更明确。 我正在尝试匹配电子邮件地址,但不是在_
之后的部分中具有下划线的电子邮件地址到目前为止,这是我的总数。
/[A-Za-z_0-9]+@[A-Za-z0-9]+\.(com|ca|org|net)/
到目前为止的答案,不起作用
答案 0 :(得分:11)
/^[^_]+$/
将匹配包含除下划线之外的任何字符的1个或多个字符的字符串。
答案 1 :(得分:3)
如果我理解你要求的东西 - 匹配字符串,除了包含下划线的字符串外 - 这需要正则表达式前瞻。
原因是正则表达式通常一次操作一个字符。所以,如果我想知道我是否应该匹配一个字符,但只有在以后没有下划线时,我需要使用前瞻。
^((?!_)[A-Za-z0-9])+$
?!
是负前瞻运算符
编辑:
所以你希望@符号前面的部分最多只有一个下划线,而后面的部分中没有下划线?
^[A-Za-z0-9]+_?[A-Za-z0-9]+@[A-Za-z0-9]+\.(com|ca|org|net)$