正则表达式匹配字符串,如果它只匹配Java中的一个组

Hai*_*vov 0 java regex regex-negation regex-group

我想知道,只有在测试字符串仅属于其中一个测试组的情况下,才有正则表达式可以帮助匹配文本吗?

假设我有这两类:

第一组: [a-zA-Z]

第2组: [0-9]

因此,是否存在适用的正则表达式,以仅匹配以下字符串:abc或仅匹配此字符串:123

但是,当有一个字符串表示两个组的组合时,这将不匹配任何内容123abc2b

PS:我正在使用Java。

Mic*_*zyn 8

交替是解决问题的关键。使用方式^(?:\d*|[a-zA-Z]*)$

说明:

^ -字符串的开头

(?:...) -非吸引团体

\d*-匹配零个或多个数字

| -交替

[a-zA-Z]* -匹配零个或多个字母(小写或大写)

$ -匹配字符串的结尾

演示版

  • @MichałTurczyn,您的答案是正确的,因为Haim是正则表达式的新手,并且与他的思维方式保持一致。通过添加+检查第一组[a-zA-Z]的多个实例,或者通过添加+检查第二组[0-9]的多个实例。或用表示([a-zA-Z] +)|([0-9] +)的管道表示。这将在Java中工作。但是,这里的答案更为完整。 (2认同)
  • @HaimLvov可以在此页面上查看更多信息。https://www.javatpoint.com/java-regex (2认同)