【发布时间】:2011-08-23 11:54:58
【问题描述】:
我正在尝试编写将在 Java 中返回 HTML 标记中的值的 Java 代码。以下是我一直在尝试的方法..有人可以帮我吗
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.seoreport.exceptions.DataNotFoundException;
public class utils {
public String tagValue(String inHTML, String tag) throws DataNotFoundException
{
String value = null;
String searchFor = "/<" + tag + ">(.*?)<\\/" + tag + "\\>/";
Pattern pattern = Pattern.compile(searchFor);
Matcher matcher = pattern.matcher(inHTML);
return value;
}
}
【问题讨论】:
-
这个问题可能有用。 stackoverflow.com/questions/1732348/…
-
您是否有理由为此需要使用正则表达式,而不是使用像 jsoup.org 这样的 HTML 解析器?正则表达式不太适合这项任务。
-
@derekerdmann:这就是答案;)
-
RegExp 对于 HTML 解析器来说是一个非常非常糟糕的选择。
-
忽略这些人:他们正在谈论解析一个包含未知内容的整个 HTML 文件,这可以做所有可能的古怪事情,虽然非常棘手,但几乎从不需要。对于预制 HTML sn-ps,正则表达式是最佳选择:这就是我们在文本编辑器中使用搜索和替换的原因。请参阅this answer on matching HTML with regexes 以获得更完整的方法,但更简单的解决方案通常完全足够。无法告诉您这里实际需要什么。