我想知道,是否有正则表达式可以帮助匹配 文本,仅当被测试的字符串仅属于被测试的组之一?
假设我有这两组:
第1组:router.post("/", async (request, response) => {
try {
const user = new Users({new user's data here..... });
const result = await user.save();
response.send(result);
} catch (error) {
response.status(400).send(error);
}
第2组:[a-zA-Z]
是否存在适用的正则表达式,以仅匹配以下字符串:[0-9]
,
或仅此一个:abc
。
但是,当存在表示两个组的组合的字符串(例如:123
?
P.S:我正在使用Java。
答案 0 :(得分:8)
替代是解决问题的关键。使用模式^(?:\d*|[a-zA-Z]*)$
说明:
^
-字符串的开头
(?:...)
-非限制组
\d*
-匹配零个或多个数字
|
-交替
[a-zA-Z]*
-匹配零个或多个字母(小写或大写)
$
-匹配字符串的结尾
答案 1 :(得分:3)
根据您的描述,我认为您只需要|
,在正则表达式中表示“或”。匹配[a-zA-Z]
或 [0-9]
,但不能同时匹配。
例如
^(?:[a-zA-Z]+|[0-9]+)$