正则表达式模式只匹配Java中逗号之间的两个字符

时间:2016-04-12 22:29:59

标签: java regex pattern-matching

所以例如在这个字符串" 3F,4B,AA,A4B"我想要一个能够捕获3F,4B和AA的正则表达式模式。逗号之间的字符数必须为2.唯一的例外是,如果两个字符都是数字,我们不想接受。我们也不在乎白色空间。

2 个答案:

答案 0 :(得分:1)

您可以使用此前瞻性正则表达式:

\b([a-zA-Z][a-zA-Z\d]|\d[a-zA-Z])(?=\s*,)
  • \b用于字边界。
  • 正向前瞻,(?=\s*,)断言在2个字符后面跟有,
  • ([a-zA-Z][a-zA-Z\d]|\d[a-zA-Z])以确保我们至少使用一个字母为2个字符
Java中的

Pattern p = Pattern.compile("\\b([a-zA-Z][a-zA-Z\\d]|\\d[a-zA-Z])(?=\\s*,)");

RegEx Demo

答案 1 :(得分:0)

尝试以下正则表达式:

\b(\d[a-z]|[a-z]\d|[a-z]{2})(?=\b)

这将只捕获由字母数字或alpha组成的两个字母。

请参阅Regex101

上的演示