java正则表达式匹配富文本中可以访问别的域名
时间: 2024-03-09 15:47:54 浏览: 123
匹配 IP 地址与域名的正则表达式
5星 · 资源好评率100%
如果您想匹配富文本中的链接,但是不限制链接的域名,可以使用以下正则表达式:
```java
String pattern = "<a\\s+(?:[^>]*?\\s+)?href=[\"'](.*?)['\"].*?>(.*?)</a>";
```
这个正则表达式可以匹配所有的`<a>`标签,并提取出其中的`href`属性和链接文本。在这个正则表达式中,使用了两个非捕获组 `(?:)` 和 `[^>]*?`,这两个组合起来可以匹配除了`>`之外的任意字符,从而避免了限制链接域名的问题。
如果您需要进一步处理这些链接,可以使用Java中的`URL`类来解析链接,并提取出其中的域名等信息。例如:
```java
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RichTextParser {
private static final String LINK_PATTERN = "<a\\s+(?:[^>]*?\\s+)?href=[\"'](.*?)['\"].*?>(.*?)</a>";
public static void parse(String richText) {
Pattern linkPattern = Pattern.compile(LINK_PATTERN);
Matcher linkMatcher = linkPattern.matcher(richText);
while (linkMatcher.find()) {
String linkUrl = linkMatcher.group(1);
String linkText = linkMatcher.group(2);
System.out.println("Found link: " + linkUrl + " (" + linkText + ")");
try {
URL url = new URL(linkUrl);
String domain = url.getHost();
System.out.println("Link domain: " + domain);
} catch (Exception e) {
// Ignore invalid URLs
}
}
}
}
```
在上述代码中,使用`URL`类来解析链接,并提取出其中的域名信息。如果链接无效,则忽略该链接。
阅读全文