回答
您應該瞭解javascript或HTML5上下文中的regular expressions用法。
請不要使用正則表達式解析HTML,因爲它會[驅動你的į̷̷͚̤̤̖̦͍͗̒̈̅̄n̨͖͓̹͍͎͔͈̝͐ͪ͛̄͛ṣ̷̵̞̦ͤ̅̉̋ͪ͑͛ͥ͜a̷̘͖̮͔͎͛̇̏̒͆̆͘n͇͔̤̼͙̩͖̭ͤ͋̉͌͟eͥ͒͆ͧͨ̽͞҉̹͍̳̻͢](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 )。改爲使用[HTML解析器](http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php)。 – 2012-07-14 10:35:25
w3schools是一個錯誤的和誤導性的網站。您不應該將其用作任何語言的參考。對於PHP,有[PHP手冊](http://php.net),對於JavaScript,有[Mozilla開發者網絡(或MDN)](https://developer.mozilla.org/)。請參閱http://w3fools.com以進一步瞭解爲什麼您不應該使用w3schools。 – 2012-07-14 10:36:04
使用這個表達式
<([^>]*)>([^<]*)</[^>]*>
與
<$1>$2</$1>
更換所以對於樣本輸入文本
<h2> text </p>
<h1> some text </invalidtag>
你的結果是:
<h2> text </h2>
<h1> some text </h1>
請不要使用正則表達式解析HTML,因爲它會[驅動你的į̷̷͚̤̤̖̦͍͗̒̈̅̄n̨͖͓̹͍͎͔͈̝͐ͪ͛̄͛ṣ̷̵̞̦ͤ̅̉̋ͪ͑͛ͥ͜a̷̘͖̮͔͎͛̇̏̒͆̆͘n͇͔̤̼͙̩͖̭ͤ͋̉͌͟eͥ͒͆ͧͨ̽͞҉̹͍̳̻͢](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 )。改爲使用[HTML解析器](http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php)。你的解決方案其實很聰明,所以我不會倒下,但請不要。 – 2012-07-14 10:36:30
@Truth:這似乎是問題是關於'無效的HTML'。我,不知道正確的HTML解析器的工作。 – Ria 2012-07-14 10:40:31
謝謝!完美的作品!我只編輯了<([^>] *)>([^ <]*)[^>] *>到<([h2]*)>([^ <]*)[^>] *>查找以h2開頭的表達式 – user1525379 2012-07-14 10:56:48
- 1. 正則表達式結束標籤替換問題
- 2. 正則表達式替換標籤
- 3. 正則表達式替換標籤
- 4. 正則表達式替換HTML標籤
- 5. 多行正則表達式替換標籤內部的標籤?
- 6. 正則表達式替換標籤在C#中的標籤?
- 7. 正則表達式結束
- 8. 正則表達式結束
- 9. 使用Javascript替換正則表達式$ \以$替換正則表達式
- 10. 正則表達式的結束標記=啓動標籤
- 11. vb.net正則表達式 - 替換標籤而不替換span標籤
- 12. 正則表達式替換開始和結束,忽略中間
- 13. 使用正則表達式替換//與/
- 14. 替換使用正則表達式
- 15. 使用Python正則表達式替換
- 16. 替換使用正則表達式
- 17. 使用Emacs替換正則表達式
- 18. 使用正則表達式替換charaters
- 19. 使用替換正則表達式 - VBA
- 20. 替換使用正則表達式
- 21. 使用正則表達式替換
- 22. 替換使用正則表達式
- 23. 正則表達式替換REG商標
- 24. 用preg_replace和正則表達式替換img標籤
- 25. 用正則表達式替換實例標籤
- 26. PHP正則表達式用[IMG]替換html img標籤
- 27. 如何用正則表達式替換來擴展XML標籤
- 28. 用正則表達式替換xml標籤
- 29. 用正則表達式替換xml標籤值
- 30. 如何用PHP中的正則表達式替換「@」後標籤?
您尚未提供有關您所使用的語言/平臺的詳細信息。無論如何 - 通常不推薦使用正則表達式解析HTML。通常使用HTML解析器會更好。 – Oded 2012-07-14 10:03:00
歡迎來到Stack Overflow!請不要使用正則表達式解析HTML,因爲它會[驅動你į̷̷͚̤̤̖̦͍͗̒̈̅̄n̨͖͓̹͍͎͔͈̝͐ͪ͛̄͛ṣ̷̵̞̦ͤ̅̉̋ͪ͑͛ͥ͜a̷̘͖̮͔͎͛̇̏̒͆̆͘n͇͔̤̼͙̩͖̭ͤ͋̉͌͟eͥ͒͆ͧͨ̽͞҉̹͍̳̻͢](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) 。改爲使用[HTML解析器](http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php)。 – 2012-07-14 10:34:59
@Truth - 像這樣的格式錯誤的標記問題不一定可以通過HTML解析器解決。解析器將失去太多關於畸形的信息。對於這種情況,正則表達式可能是最好的方法。 – Alohci 2012-07-14 10:42:43