gpt4 book ai didi

Java - 正则表达式输入错误处理

转载 作者:行者123 更新时间:2023-12-02 07:36:08 25 4
gpt4 key购买 nike

我目前正在做一项大学作业,并且有一个关于正则表达式/正则表达式的(很可能很简单)问题。

总结一下;此作业是一个简单的 RSS 源管理器,它使用 JSP 和 RESTful Web 服务。

我目前正在研究作业规范的一部分,该部分要求我能够输入 XML feed 数据(例如 FEED NAME http://FEEDuri/ 等..)并通过正则表达式从这些数据中提取 FEED NAME 和 FEEDuri。

我的讲师为我们提供了一个基本的工作方法,我认为我已经在 RESTful Web 服务中正确实现了它,现在我正在实现错误处理。

我已经成功地实现了用户没有输入数据的情况下的错误处理。我的问题是:基于示例方法(如下),是否可以对 feed 格式输入不正确的情况进行错误处理

例如:&lt; fed> FEED NAME < /fiid> < uro>http://FEEDuri< /pro>这里的 XML 标签显然是不正确的。

如果该组位于作为参数传递给编译方法的定义值之间,那么正则表达式是否只会从字符串中提取该组?

为了补充我的问题,下面是我们使用的基本方法(而不是 XML 解析器):

public static List<Feed> getFeedsFromXml(String xml) {
Pattern feedPattern = Pattern.compile("<feed>\\s*<name>\\s*([^<]*)</name>\\s*<uri>\\s*([^<]*)</uri>\\s*</feed>");
Matcher feedMatch = feedPattern.matcher(xml);

while (feedMatch.find()) {
String feedName = feedMatch.group(1);
String feedURI = feedMatch.group(2);
feeds.add(new Feed(feedName, feedURI));
}

return feeds;
}

最佳答案

是的,正则表达式只会匹配它匹配的字符串部分。如果您的正则表达式包含 "<feed>" ,它不会去匹配像 "<fed>" 这样的字符串或"<fiid>" .

如果输入字符串中没有匹配的正则表达式,feedMatch.find()第一次调用它时只会返回 false,因此 while 中没有任何内容。循环将执行。此方法将简单地返回一个空列表,正如它可能应该的那样。

关于Java - 正则表达式输入错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207102/

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