2016-08-17 55 views
0

在這種情況下:如何讓正則表達式忽略HTML標籤之間的內容?

<script> 
function(); 
</script> 

please don't touch me. 

<script> 
function(); 
</script> 

我試圖捕捉標記和它們之間的信息,而不是「請不要碰我在中間」。到目前爲止,我想出了這一點:

/<script>[^]+<\/script>/ig 

從最初的<script>標籤捕捉一切到最後</script>標籤。

+4

用正則表達式一般解析HTML是一個壞主意。請參閱:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Skogsv

回答

2

你需要做的正則表達式不貪心,因爲它是貪婪的默認:

<script>[^]+?<\/script> 
0

使用?量詞到第一結束標記匹配:

/<script>([^]*?)<\/script>/ig 

但正如其他人已經說過,你會做最好的HTML打交道時使用XML解析器。

+0

這似乎是伎倆,雖然我用'/

  • 11. 正則表達式:忽略HTML標籤與preg_replace_callback
  • 12. 正則表達式與XML在標籤之間查找內容
  • 13. 正則表達式的HTML標籤內
  • 14. 正則表達式替換不在HTML標籤內的內容
  • 15. 正則表達式忽略2個單詞之間的所有內容
  • 16. 正則表達式,如何獲取標籤之間的所有內容?
  • 17. ColdFusion的正則表達式,獲取內容HTML標籤的
  • 18. Python - 正則表達式忽略任何內容<>
  • 19. 使用正則表達式遞歸HTML標籤的內容
  • 20. 如何讓PLY忽略正則表達式的情況?
  • 21. 如何匹配正則表達式的HTML標籤之外
  • 22. 忽略正則表達式中的括號之間的文本
  • 23. 需要修改我的正則表達式忽略iframe標籤
  • 24. PHP的正則表達式忽略嵌套標籤
  • 25. 正則表達式拆分詞組的話,卻忽略標籤
  • 26. 正則表達式解析HTML標籤,並獲取內容
  • 27. 正則表達式找到html標籤內容
  • 28. 正則表達式剝離HTML標籤內容有條件
  • 29. HTML span標籤內容和屬性preg_match正則表達式
  • 30. 正則表達式:忽略字段之間的空格