gpt4 book ai didi

java - 如果检查的字符串仍然有剩余字符,如何使正则表达式匹配失败?

转载 作者:行者123 更新时间:2023-11-29 06:44:12 24 4
gpt4 key购买 nike

我正在尝试使用正则表达式检查字符串,只有当字符串仅包含 *h、*d、*w 和/或 *m(其中 * 可以是任意数字)时,此检查才会通过。

到目前为止我得到了这个:

Pattern p = Pattern.compile("([0-9]h)|([0-9]d)|([0-9]w)|([0-9]m)");
Matcher m = p.matcher(strToCheck);
if(m.find()){
//matching succesful code
}

它可以检测检查的字符串中是否存在任何数字字母组合,但如果输入是“12x5d”,它也可以工作,因为其中包含“5d”。我不知道这是代码问题还是正则表达式问题。有没有办法实现我想要的?

编辑:感谢您到目前为止的回答,但根据要求,我会尝试澄清一下。像“1w 2d 3h”或“1w 1w”这样的字符串是有效的并且应该通过,但是像“1w X 2d 3h”、“1wX 2d”或“w d h”这样的字符串应该失败。

最佳答案

使用 m.matches() 或将 ^$ 添加到正则表达式的开头和结尾。

编辑,但如果你想要这些由空格分隔的序列(如评论中所述),你可以使用

Pattern.compile("\\b\\d[hdwm]\\b");
Matcher m = p.matcher(strToCheck);
while(m.find()){
//matching succesful code
}

关于java - 如果检查的字符串仍然有剩余字符,如何使正则表达式匹配失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7837045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com