我正在尋找一種方法來使用regexp爲了從字符串中刪除所有的html標記。
所以,如果我有<HTML><b><FONT color="red" size="3">Hello</FONT></b></HTML>
我想從它得到hello
。正則表達式爲Matlab標記與Matlab
我知道它可能看起來像嵌套標籤,但它不是真的,因爲我想在這裏做的是刪除兩個<>
之間的任何東西。
我正在使用Matlab來做這件事,但正則表達式完全一樣,所以請隨時提供任何幫助。
謝謝。
我正在尋找一種方法來使用regexp爲了從字符串中刪除所有的html標記。
所以,如果我有<HTML><b><FONT color="red" size="3">Hello</FONT></b></HTML>
我想從它得到hello
。正則表達式爲Matlab標記與Matlab
我知道它可能看起來像嵌套標籤,但它不是真的,因爲我想在這裏做的是刪除兩個<>
之間的任何東西。
我正在使用Matlab來做這件事,但正則表達式完全一樣,所以請隨時提供任何幫助。
謝謝。
我的解決辦法是:
>> str='<HTML><b><FONT color="red" size="3">Hello</FONT></b></HTML>';
>> regexprep(str, '<.*?>','')
ans =
Hello
它已被廣泛接受,使用正則表達式解析HTML一般是不好的形式。如果你的html比給出的例子複雜得多,那麼你應該使用XML解析器。
在這個着名的SO問題中進一步討論。 RegEx match open tags except XHTML self-contained tags。
如果要正確分析的內容,然後下載xml_io_tools和使用
doc = xml_read('test.html')
doc.b.FONT.CONTENT
如果你想堅持用正則表達式,然後使用伊利亞的答案,但是從鏈接答案,例如正則表達式的一個,
str = '<HTML><b><FONT color="red" size="3">Hello</FONT></b></HTML>';
rx = '<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>';
regexprep(str, rx, '')
既然你提到,你想從上面的HTML中提取的 「hello」(說filename.html)文件,你可以使用MATLAB中的以下內容:
doc = xmlread('filename.html'); 含量= doc.item(0).getTextContent
希望這有助於!
太棒了,謝謝! – 2011-05-03 12:43:41