gpt4 book ai didi

单个进程中的 Java 正则表达式子搜索?

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

我试图在单个正则表达式中获取 HTML 源代码元标记“名称”属性值。这可能吗?现在我正在运行一个正则表达式来获取所有元标记:

"<meta.*?>"

我将所有匹配项存储到一个 List 中,然后我对这些结果运行第二个正则表达式以获取“名称”属性值:

"name=\".*?\""

有没有办法用一个正则表达式来做到这一点?我只想存储元标记的“名称”属性,忽略其他 HTML 标记。

谢谢!

最佳答案

List<String> matchList = new ArrayList<String>();
try {
Pattern regex = Pattern.compile("(?<=<meta).*?name\\s*=\\s*\"(.*)\"");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group(1));
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}

最后的列表 (matchList) 应该包含所需的结果,这将是所有名称属性的值。

最后,正如您将在所有与 xml/html 和正则表达式相关的帖子中看到的那样,规范是使用解析器而不是正则表达式。但是,如果您的任务非常简单,您可以使用正则表达式轻松完成。

关于单个进程中的 Java 正则表达式子搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7700981/

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