Regex 如何编写正则表达式以匹配';012356789';(第四号)

Regex 如何编写正则表达式以匹配';012356789';(第四号),regex,Regex,现在,我使用的是[012356789],但是有没有其他方法来实现“没有4的所有数字”您可以尝试以下正则表达式: [0-35-9] 要确保字符串仅包含除数字4之外的数字,可以使用以下命令:^[0-35-9]+$。^表示字符串的开头,[0-35-9]表示除数字4之外的任何数字,+表示一个或多个,而$表示字符串的结尾。对于这种简单的情况,另一个建议就足够了。对于更复杂的情况,您可以使用以下方法: (?!4)[0-9] 当您使用字符类并且希望排除单个字母时,这将非常有用。(例如,除x之外的任何字母)

现在,我使用的是
[012356789]
,但是有没有其他方法来实现“没有4的所有数字”

您可以尝试以下正则表达式:

[0-35-9]

要确保字符串仅包含除数字
4
之外的数字,可以使用以下命令:
^[0-35-9]+$
^
表示字符串的开头,
[0-35-9]
表示除数字
4
之外的任何数字,
+
表示一个或多个,而
$
表示字符串的结尾。

对于这种简单的情况,另一个建议就足够了。对于更复杂的情况,您可以使用以下方法:

(?!4)[0-9]
当您使用字符类并且希望排除单个字母时,这将非常有用。(例如,除
x
之外的任何字母)。它的意思是:
后面不跟4,任何数字0-9

正如@stema所指出的,从长远来看,这将使正则表达式更加“复杂”。如果要添加量词,则有两个“regex元素”,而不是一个,因此需要:

(?:(?!4)[0-9])

?:
表示该组不是捕获组)

另一种可能性是

[^\D4]
\D
不是数字,因此在否定字符类中,它将匹配一个数字,然后您可以将“4”添加到否定类中,以将其从允许的字符中排除


查看它

这个正则表达式也应该匹配
aaa0aaa
@npinti:取决于你如何使用它。好的,但是如果你想把它和一个量词一起使用,你需要先像这样把它分组
(?:(?!4)[0-9])+
。根据正则表达式的方言,
\d
可能是非欧洲数字,所以要注意:-)