如何提取标签之间的文本?
要获取标签之间的文本,下面的代码可以正常工作,
System.out.println("<text>google<text/>".replaceAll("<[^>]*>", "")); // gives google
我正在尝试对 <
和 >
进行相同的操作。我是否遗漏了以下代码的任何内容?
System.out.println("<aksdk>google<aksdk>".replaceAll("<[^.]*>", ""));
PS:我不使用它来解析 html。
最佳答案
您需要使用方括号捕获尖括号之间的内容,并通过在替换字符串中使用 $1
引用组 1 将其放回原处:
"<aksdk>google<aksdk>".replaceAll("<([^.]*?)>", "$1")
重要提示:使用 [^.]*?
(而不是 [^.]*
),因为 [^.]*?
> 是非贪婪的,这意味着它不会跳过第一个 >
并与最后一个 >
匹配,这会留下第一个 >
和第二个 <
完好无损 - 不是您想要的。
关于java - 替换 < 和 > 的所有实例,但不替换它们之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680216/