获取子串正则表达式java

时间:2015-11-22 00:10:51

标签: java regex string

我有这样的一句话: <a href="/verona/4mktg-for-marketing.8526695" title="4MKTG FOR MARKETING SRL">4MKTG FOR MARKETING <strong>SRL</strong> </a>

我需要该字段的标题。我将字符串拆分为'title =“'然后检查它是否与此正则表达式匹配:"[0-9A-Z /.]{3,}"。但它不起作用...

该字段仅包含数字,大写字母,空格和点

谢谢

的Davide

3 个答案:

答案 0 :(得分:3)

在处理HTML时,不应使用正则表达式,而应使用JSoup。

Document doc = Jsoup.parse(html);
Element links = doc.select("a");
for (Element l : links) {
    // grab the title attribute value
    System.out.println(l.attr("title"));
}

答案 1 :(得分:2)

title="([\dA-Z\. ]+)"

Regular expression visualization

Debuggex Demo

答案 2 :(得分:2)

如果您需要使用正则表达式(并使用java.util.regex),请参阅this answer,考虑使用Java中的类似PERL的正则表达式:

str = '<a href="/verona/4mktg-for-marketing.8526695" title="4MKTG FOR MARKETING SRL">4MKTG FOR MARKETING <strong>SRL</strong> </a>';
str = str.replaceAll('.* title="([\s\.A-Z0-9]+)".*', "$1");