如何为只有一个数字的行匹配正则表达式,反之亦然



我有一些单词,如何只匹配一个数字的正则表达式,而匹配所有单词,反之亦然?

YV932X6R
V5R67HD1
5R3XPD61
57342D61
CRHXPDV2
12345678
CDHKPQRV

我试过用这种方式,但这不是我想要的

^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$

输出

YV932X6R
V5R67HD1
5R3XPD61
57342D61
CRHXPDV2

预期输出

CRHXPDV2

57342D61

如果你不在乎长度,那么你可以只对一个数字或一个字母使用以下模式:

^[A-Za-z]*[0-9][A-Za-z]*$
^[0-9]*[A-Za-z][0-9]*$

如果你也有8个字符的长度要求,你可以通过积极的前瞻性来强制执行。例如,一个数字和其余字母的模式将变为:

^(?=.{8}$)[A-Za-z]*[0-9][A-Za-z]*$

最新更新