gpt4 book ai didi

java - 使用java正则表达式从xml中提取作者

转载 作者:行者123 更新时间:2023-12-01 18:28:34 24 4
gpt4 key购买 nike

我知道正则表达式对于这项任务来说并不理想。但我无法使用解析器,因为我需要保留 OFFSET。所以我这里有两个问题,一个是关于正则表达式,另一个是提取“作者”。如果您推荐我使用任何解析器,请告诉我是否有解析器可以保留偏移量。我有这样的 xml:

<post author="lafeat" datetime="2014-04-03T04:26:00" id="p1">
For legions of young couples, there is no wedding venue more desirable than a barn in the country.
</post>

我的代码在这里:

String regex = "<post\\s*?author=\"(?!\")*\"?.*?>.*?</post>";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("start from: " + m.start());
System.out.println("end to: " + m.end());
System.out.println("the text is: " + text.substring(m.start(), m.end()));
}

但是我没有从这个正则表达式中得到任何结果?任何建议都会非常感谢。

最佳答案

您没有得到任何返回,因为您错误地使用了负向前瞻并且没有捕获组。如果您想提取作者,请使用捕获组。

String regex = "<post\\s*author=\"([^\"]+)\"[^>]+>[^><]+</post>";

然后在此处返回匹配的组:

while (m.find()) {
System.out.println("start from: " + m.start());
System.out.println("end to: " + m.end());
System.out.println("the text is: " + m.group(1));
}

关于java - 使用java正则表达式从xml中提取作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140910/

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