Java正则表达式find方法为匹配的罗马数字返回false
我试图在java中创建一个正则表达式模式来匹配具有特定属性的列表文本。例如:
(i) hello stackoverflow (iv) hello user
列表可以匹配(i)
或i)
。
我使用我对正则表达式的理解得出了一个模式,并在一个在线工具中测试了该版本,它返回了正确的结果。然而,当我在java中实现它时,模式匹配器为find方法返回false
这是psudo代码:'
String text = "(i) hello";
String romanNumeralsRegex = "^(\\(|\\[)?((v|x)?i[xv]|(xv|v|x)?i+|(xv|v|x))((\\)|\\]|\\.))";
Pattern pattern = Pattern.compile(romanNumeralsRegex );
Matcher matcher = pattern.matcher(text);
System.out.println(matcher.find());
媒人。find()方法返回false。根据我的理解,匹配器应该返回group(0)
作为(i)
。我不知道我哪里出错了。请求社区的帮助
提前谢谢
# 1 楼答案
在我看来,一切都是正确的,除了在调用
Matcher#find
之后需要调用Matcher#group
:输出: