可能重複:
Regular expression to remove HTML tags正則表達式從字符串中刪除HTML標籤
是否有這將讓兩個HTML標記之間的值的表達式?
有鑑於此:
<td class="played">0</td>
我找這將返回0
,剝離<td>
標籤的表達式。
可能重複:
Regular expression to remove HTML tags正則表達式從字符串中刪除HTML標籤
是否有這將讓兩個HTML標記之間的值的表達式?
有鑑於此:
<td class="played">0</td>
我找這將返回0
,剝離<td>
標籤的表達式。
一個平凡的方法是什麼也沒有更換
<[^>]*>
。但取決於你的投入是多麼糟糕,可能會失敗。
替換是不好的方法。對於更多的匹配,你可以將它們合併爲一個字符串 –
我不認爲我得到你想說的話。 – Joey
鑑於'第一個第二個',在你的文章中使用'replaceAll'將會產生'FirstSecond'。 –
您可以用jsoup http://jsoup.org/
Whitelist whitelist = Whitelist.none();
String cleanStr = Jsoup.clean(yourText, whitelist);
JSoup是一個非常酷的庫,但是除非OP計劃做的不僅僅是簡單的替換,他在他原來的文章中描述過它可能是一個相當重的解決方案 –
你不應該試圖用正則表達式解析HTML做到這一點。 HTML不是一種常規語言,所以你提出的任何正則表達式可能會在一些神祕的邊緣情況下失敗。有關詳細信息,請參閱this question的重要答案。雖然大多數是作爲一個笑話格式化,但它是一個很好的觀點。
下面的例子是Java,但正則表達式將是類似的 - 如果不相同 - 其他語言。
String target = someString.replaceAll("<[^>]*>", "");
假設你非HTML不包含任何<或>和您輸入的字符串結構正確。
如果你知道他們是一個特定的標籤 - 例如,你知道的文本只包含<td>
標籤,你可以做這樣的事情:
String target = someString.replaceAll("(?i)<td[^>]*>", "");
編輯: Ωmega提出了一個很好的點對另一篇文章發表評論說,如果存在多個標籤,這將導致多個結果全部被擠在一起。
例如,如果輸入的字符串是<td>Something</td><td>Another Thing</td>
,那麼上述將導致SomethingAnother Thing
。
在多個標籤被預期的情況下,我們可以這樣做:
String target = someString.replaceAll("(?i)<td[^>]*>", " ").replaceAll("\\s+", " ").trim();
這取代了HTML用一個空格,然後崩潰的空白,然後修剪任何的結束。
例如:'
here
'。明白了嗎? –您不應該對我的評論產生不利影響。我並沒有讓你失望,我現在可以通過降低你的想法來證明它,如果你想... –
OP說:「我是lo爲表達式返回0,剝離標籤。「帖子的標題是」用於從字符串中刪除html標籤的正則表達式「。我剝去了''標籤。在OP的任何地方都沒有提及任何有關pattern * matching *的內容。 –
難道是字符串,整個字符串,只是字符串?如果是這樣,那麼'\ d +'怎麼樣? – Ryan
我正在使用這樣的東西:'(?:。+? | 。+? | <(?:!/?[a-zA-Z] +)。*?/?>)'並用'「」替換。 –
如果你正在閱讀這個問題,請***請閱讀接受的重複答案。這裏的前兩個答案都容易受到非常簡單的輸入。 TL; DR:正則表達式對於正確剝離HTML標記不是有用的。 –