如何编写仅在字符串包含某些字符和数字时才能激活的正则表达式?

时间:2019-07-11 17:20:00

标签: java regex

我正在尝试解决教练给我的一些问题,其中一个问题是要求我检查输入字符串是否符合以下规则:

  1. 该字符串包含2到9之间的数字。
  2. 该字符串包含字母TJQKA。
  3. 如果字符串中提到的字母之外还有其他字母,则该字符串无效。

EX:

643TJAKQ =确定

72MAJTQ =不好

1246AKJQ =不好

AKT432 =确定

这显然是一个正则表达式问题,因为如果我尝试按列表,数组或其他内容进行过滤,则仅通过验证(并编写代码)就会花费太多时间。我尝试使用此reg exp(/[2-9]|(T|J|Q|K|A)/g),但是很垃圾。

4 个答案:

答案 0 :(得分:3)

以下正则表达式有效:^[2-9TJQKA]+$

说明:

^:开始

[2-9TJQKA]:定义允许的值

+:允许多个字符字符串

$:结束

答案 1 :(得分:2)

您可以简单地定义允许的字符:

[2-9TJQKA]+

答案 2 :(得分:1)

Boolean okayOrNot = someString.matches("[2-9TJQKA]+");

答案 3 :(得分:-1)

我建议使用正则表达式:\b[2-9TJQKA]+\b

2-9-仅接受2到9之间的数字

TJQKA-仅接受这些字符

\b个仅包含这些字符的单词

regex101也在free formatter