java - 如果字符串仅匹配 Java 中的一组,则使用正则表达式来匹配该字符串

标签 java regex regex-negation regex-group

我想知道是否有正则表达式可以帮助匹配 文本,仅当测试字符串仅属于测试组之一时?

假设我有这两个组:

第 1 组:[a-zA-Z]

第 2 组:[0-9]

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

但是,当存在表示两个组的组合的字符串时,不会匹配任何内容,例如:123abc2b

P.S:我使用的是 Java。

最佳答案

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

说明:

^ - 字符串的开头

(?:...) - 非捕获组

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

| - 交替

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

$ - 匹配字符串结尾

Demo

关于java - 如果字符串仅匹配 Java 中的一组,则使用正则表达式来匹配该字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55782203/

相关文章:

Python正则表达式计算数字、字母出现的次数

java - 如何实现一个在服务器上运行大约 12 小时的程序?

java - Wav 比较,相同的文件

regex - 不是正则表达式中的运算符

Javascript/jQuery 从字符串中获取前 100 个字符,尊重完整的单词

python - 美国格式的电话号码到 Python 中的链接

java - 记录器是否应该是私有(private)静态的

java - Shopify oauth 中的 HMAC-SHA256 问题(输出不匹配)

c# - 具有量化部分和负向前瞻的正则表达式

javascript - JavaScript 正则表达式中的否定匹配