gpt4 book ai didi

Java正则表达式查找方法为匹配罗马数字返回false

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:40 25 4
gpt4 key购买 nike

我正在尝试在 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 之后调用 Matcher#group:

if (matcher.find()) {
System.out.println(matcher.group(0));
}

输出:

(i)

关于Java正则表达式查找方法为匹配罗马数字返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49904214/

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