我想知道是否有正则表达式可以帮助匹配 文本,仅当测试字符串仅属于测试组之一时?
假设我有这两个组:
第 1 组:[a-zA-Z]
第 2 组:[0-9]
是否有一个适用的正则表达式,仅匹配以下字符串:abc
,
或仅此一个:123
。
但是,当存在表示两个组的组合的字符串时,不会匹配任何内容,例如:123abc2b
?
P.S:我使用的是 Java。
最佳答案
交替是解决问题的关键。使用模式 ^(?:\d*|[a-zA-Z]*)$
说明:
^
- 字符串的开头
(?:...)
- 非捕获组
\d*
- 匹配零个或多个数字
|
- 交替
[a-zA-Z]*
- 匹配零个或多个字母(小写或大写)
$
- 匹配字符串结尾
关于java - 如果字符串仅匹配 Java 中的一组,则使用正则表达式来匹配该字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55782203/