【发布时间】:2018-09-28 23:04:59
【问题描述】:
我正在尝试在 java 中创建一个正则表达式模式来匹配具有某些属性的列表文本。例如:
(i) hello stackoverflow (iv) hello user
该列表可以匹配(i) 或i)。
我使用我对正则表达式的理解得出了一个模式,并在在线工具中测试了该版本,它返回了正确的结果。但是,当我在 java 中实现它时,模式匹配器为 find 方法返回 false。
这是伪代码:'
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());
matcher.find() 方法返回 false。据我了解,匹配器应将group(0) 作为(i) 返回。我不知道我哪里出错了。在此处向社区请求帮助
提前致谢。
【问题讨论】:
-
matcher.find() 的输出对我来说返回 true
-
@RAZ_Muh_Taz 这很奇怪,因为它对我来说返回 false。
标签: java regex pattern-matching