我正在学习正则表达式,我正在使用以下代码片段进行测试:
String regex = "";
String test = "";
Pattern.compile(regex).matcher(test).find();
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这样的时候:
System.out.println(Pattern.compile("h{2,4}").matcher("hhhhh").find());
Run Code Online (Sandbox Code Playgroud)
它返回true而不是预期的错误.
要么
System.out.println(Pattern.compile("h{2}").matcher("hhh").find());
Run Code Online (Sandbox Code Playgroud)
它返回true而不是预期的错误.
有什么问题?也许这不是用于正确测试正则表达式的正确语句?
谢谢.
Tim*_*ker 11
该字符串hhh包含两个hs,因此正则表达式匹配,因为该find()方法允许匹配子字符串.
如果锚定正则表达式以强制它匹配整个字符串,则正则表达式将失败:
^h{2}$
Run Code Online (Sandbox Code Playgroud)
另一种可能性是使用该matches()方法:
"hhh".matches("h{2}")
Run Code Online (Sandbox Code Playgroud)
将失败.
| 归档时间: |
|
| 查看次数: |
10835 次 |
| 最近记录: |