Java Regex 从 HTML anchor (<a>...</a>) 标签获取文本

标签 java regex

我正在尝试获取某个标签内的文本。所以如果我有:

<a href="http://something.com">Found<a/>

我希望能够检索 Found文本。

我正在尝试使用正则表达式来做到这一点。如果 <a href="http://something.com> 我能做到保持不变,但事实并非如此。

到目前为止我有这个:

Pattern titleFinder = Pattern.compile( ".*[a-zA-Z0-9 ]* ([a-zA-Z0-9 ]*)</a>.*" );

我认为最后两部分 - ([a-zA-Z0-9 ]*)</a>.* - 没问题,但我不知道第一部分该做什么。

最佳答案

正如他们所说,不要使用正则表达式来解析 HTML。不过,如果您意识到这些缺点,您可能会侥幸逃脱。尝试

Pattern titleFinder = Pattern.compile("<a[^>]*>(.*?)</a>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
Matcher regexMatcher = titleFinder.matcher(subjectString);
while (regexMatcher.find()) {
    // matched text: regexMatcher.group(1)
} 

将遍历字符串中的所有匹配项。

它不会处理嵌套 <a>标记并忽略标记内的所有属性。

关于Java Regex 从 HTML anchor (<a>...</a>) 标签获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4628715/

相关文章:

php - 拼图 : Splitting An HTML String Correctly

python - 我的正则表达式适用于 regex101 但不适用于 python?

Java正则表达式匹配大括号之间的文本

java - 获取删除文件夹\文件的时间

java - 字符串操作题

python - 如何使用 Pandas/Python 删除括号和所有数据?

python - 匹配字符串开头、中间和结尾处的完整单词

java - 如何解决java文件下载异常?

java - 通过其子类特定字段的 Hibernate filternig 对象列表

java - 我可以使用 Java 创建 Cloudwatch 自定义指标吗?