gpt4 book ai didi

Java Regex - 从 HTML anchor 提取链接

转载 作者:行者123 更新时间:2023-11-30 04:52:56 24 4
gpt4 key购买 nike

我有以下代码

private String anchorRegex = "\\<\\s*?a\\s+.*?href\\s*?=\\s*?([^\\s]*?).*?\\>";
private Pattern anchorPattern = Pattern.compile(anchorRegex, Pattern.CASE_INSENSITIVE);
String content = getContentAsString();
Matcher matcher = anchorPattern.matcher(content);

while(matcher.find()) {
System.out.println(matcher.group(1));
}

getContentAsString() 的调用返回网页中的 HTML 内容。我遇到的问题是 System.out 中打印的唯一内容是空格。谁能看出我的正则表达式有什么问题吗?

正则表达式有时让我抓狂。

最佳答案

您需要将捕获组与以下 .*? 分隔开。 href 周围可能有双引号 ",因此请使用它们:

<\s*a\s+.*?href\s*=\s*"(\S*?)".*?>

您的正则表达式包含:

([^\s]*?).*?

([^\s]*?) 表示勉强找到所有非空白字符并将它们保存在一个组中。但不情愿的 *? 取决于下一部分,即 .;任何字符。因此,href 的匹配会在第一时间中止,并且 .*? 会匹配 URL 的其余部分。

关于Java Regex - 从 HTML anchor 提取链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472002/

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