字符串后跟偶数位数的字符串需要正则表达式

时间:2018-11-12 11:47:31

标签: java regex

谁能告诉我如何为一个包含一个或多个字母数字字符并后接偶数个数字的字符串编写正则表达式?

有效:

a11a1121
bbbb11a1121

无效:

a11a1

我尝试过^[a-zA-Z*20-9]*$,但它总是正确。

在这方面您能帮忙吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式来实现它:^[a-z0-9]*[a-z]+([0-9]{2})*$

说明:

  • [a-z0-9]*[a-z]+:至少一个字符的字符串,以非数字1结束
  • ([0-9]{2})*:奇数个数字序列(0或2 * n个数字)。如果偶数序列不能为空,请改用([0-9]{2})+

答案 1 :(得分:1)

您提到的正则表达式将搜索任意数量的[a-z或A-Z或2或0-9]

您可以将需求分为几类,然后进行相应处理。

就像您需要至少一个字符一样。所以您以^([a-zA-Z]+)$

开始

然后,您需要数字2的倍数,因此您要添加^([a-zA-Z]+(\d\d)+)$

现在,您需要任意数量的这些组合。因此exp变为:^([a-zA-Z]+(\d\d)+)*$

您可以将regex101之类的在线工具用于这些目的。实际提供的正则表达式here