我正在尝试在某个标签内获取文本.所以,如果我有:
<a href="http://something.com">Found<a/>
Run Code Online (Sandbox Code Playgroud)
我希望能够检索Found文本.
我正在尝试使用正则表达式.如果<a href="http://something.com>保持相同但我没有,我能够做到这一点.
到目前为止我有这个:
Pattern titleFinder = Pattern.compile( ".*[a-zA-Z0-9 ]* ([a-zA-Z0-9 ]*)</a>.*" );
Run Code Online (Sandbox Code Playgroud)
我认为最后两部分 - 可以([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)
}
Run Code Online (Sandbox Code Playgroud)
将迭代字符串中的所有匹配项.
它不会处理嵌套<a>标记并忽略标记内的所有属性.