用Java测试正则表达式

我正在学习正则表达式,我正在使用以下代码片段进行测试:

String regex = "";
String test = "";
Pattern.compile(regex).matcher(test).find();

但是当我尝试这样的时候:

System.out.println(Pattern.compile("h{2,4}").matcher("hhhhh").find());

它返回true而不是预期的错误.

要么

System.out.println(Pattern.compile("h{2}").matcher("hhh").find());

它返回true而不是预期的错误.

有什么问题?也许这不是用于正确测试正则表达式的正确语句?

谢谢.

字符串hhh包含两个hs,因此正则表达式匹配,因为find()方法允许匹配子字符串.

如果锚定正则表达式以强制它匹配整个字符串,则正则表达式将失败:

^h{2}$

另一种可能是使用matches()方法:

"hhh".matches("h{2}")

将失败.

相关文章
相关标签/搜索