使用正则表达式匹配除下划线以外的任何字符

Cod*_*ein 2 regex regex-negation

我正在尝试编写一个匹配字符串的正则表达式,除了字符串和下划线.

到目前为止我有这个,/[A-Za-z0-9]+/但我不知道要包括什么,以使它不需要下划线.

更新:

是应该让这更明确的蝙蝠.我想匹配一个电子邮件地址,但不是在_之后的部分中有下划线的电子邮件地址

到目前为止,这是我的总数. /[A-Za-z_0-9]+@[A-Za-z0-9]+\.(com|ca|org|net)/ 到目前为止的答案,不起作用

rva*_*vik 11

/^[^_]+$/ 将匹配包含除下划线之外的任何字符的1个或多个字符的字符串.


Rya*_* O. 7

如果我理解您的要求 - 匹配字符串,包含下划线的字符串除外 - 这需要正则表达式先行。

原因是正则表达式通常一次操作一个字符。因此,如果我想知道是否应该匹配某个字符,但前提是稍后没有下划线,我需要使用前瞻。

^((?!_)[A-Za-z0-9])+$

?!是负先行运算符

编辑:

那么你希望@符号之前的部分最多有一个下划线,并且@符号之后的部分没有下划线?

^[A-Za-z0-9]+_?[A-Za-z0-9]+@[A-Za-z0-9]+\.(com|ca|org|net)$