3

现在,我正在使用[012356789],但是还有其他方法可以实现“所有没有 4 的数字”吗?

4

4 回答 4

6

你可以试试这个正则表达式:

[0-35-9]
于 2012-07-18T09:46:43.623 回答
4

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

于 2012-07-18T09:49:09.863 回答
2

对于这种简单的情况,其他人的建议绰绰有余。对于更复杂的情况,您可以使用以下内容:

(?!4)[0-9]

当您使用字符类并且想要排除单个字母时,这会很好。(除示例之外的任何字母x)。它的意思是:not followed by 4, any digit 0-9

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

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

(这?:意味着该组不是捕获组)

于 2012-07-18T09:53:19.100 回答
2

另一种可能性是

[^\D4]

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

在 regexr 上查看

于 2012-07-18T09:54:23.070 回答