如何使用java提取跨度的名称?

如何使用java提取跨度的名称?,java,pattern-matching,html,Java,Pattern Matching,Html,我需要编译一个模式,以获得跨度的名称,但徒劳的是,我无法得到我想要的,可能是这个模式的编写方式,我知道我做了一些不完全正确的事情。。这是我的html代码: <span class="libelleAttributPageParametrage"> "Libellé de facturation" <font color="#C60307">*</font> </span> “虚构自由书” * 这是我的java代码: public Lis

我需要编译一个模式,以获得跨度的名称,但徒劳的是,我无法得到我想要的,可能是这个模式的编写方式,我知道我做了一些不完全正确的事情。。这是我的html代码:

<span class="libelleAttributPageParametrage"> 
 "Libellé de facturation"
<font color="#C60307">*</font>
</span>

“虚构自由书”
*
这是我的java代码:

 public List<String> getAllSpan()
{
    String HTMLSource = priceSelenium.getHtmlSource();
    priceSelenium.getBodyText();
    List<String> ListOfSpan = new ArrayList<String>();
    Pattern p = Pattern.compile( "<SPAN[^>]*>([\\w\\d\\s\\n\\r()/°@\\.\\-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]*)</SPAN>" );
    Matcher m = p.matcher( HTMLSource );
    while ( m.find() )
    {
        if ( !m.group( 1 ).isEmpty() )
        {
            ListOfSpan.add( m.group( 1 ) );
        }
    }
    return ListOfSpan;
}
public List getAllSpan()
{
字符串HTMLSource=priceSelenium.getHtmlSource();
priceSelenium.getBodyText();
List ListOfSpan=new ArrayList();
模式p=Pattern.compile(“]*>([\\w\\d\\s\\n\\r()/”@\\.\-á229èèè238;èèèèèèèèèèèèèè232;
Matcher m=p.Matcher(HTMLSource);
while(m.find())
{
if(!m.group(1).isEmpty())
{
添加(m组(1));
}
}
返回span列表;
}
我需要在我的名单上写上“虚构的谎言”


提前感谢

如果要解析HTML,应该使用HTML解析器库(例如)。这将为您提供一个表示HTML的对象图,通过该图,您可以导航到感兴趣的
对象,并调用类似
spanElem.attr(“名称”)
的内容


HTML不是一种常规语言,因此将其视为文本并尝试使用正则表达式提取部分严格来说是不可能的。在简单的情况下,它可能会工作一段时间,但它仍然可能涉及一个过于复杂的正则表达式,这对于一些有效的HTML来说是失败的

请避免使用正则表达式解析HTML,因为它会。改用HTML解析器