簡體   English   中英

如何使用正則表達式避免 html 塊

[英]How to avoid html blocks with regex

我必須使用正則表達式找到所有由“[”和“]”包圍的字符串,但要避免<table></table>塊內的字符串,例如:

<html>
<body>
<p><table>
   <tbody>
      <tr>
         <td style="border-style: solid; border-width:1px;">
            <span style="font-family: Courier;">[data1]</span>
         </td>
         <td style="border-style: solid; border-width:1px;">
            <span style="font-family: Courier;">[data10]</span>
         </td>
      </tr>
   </tbody>
</table>
</p>
<p>[data3]&nbsp;&nbsp;[data4]&nbsp;&nbsp;[data5]</p>
</body>
</html>

在這種情況下,應該只找到 [data3]、[data4] 和 [data5]。 到目前為止,我有這個: @"(((?<?<span>)(\[[a-zA-Z_0-9]+)](??<\/span>))|((?<.<span>)(\[[a-zA-Z_0-9]+)])|((\[[a-zA-Z_0-9]+)](?!<\/span>)))(?!.*\1)"這會找到所有沒有被標簽包圍的 [] 塊,我嘗試添加一個否定的前瞻和后瞻,但它不起作用,它仍然會獲取表格塊內的那些。

希望你們能幫助我解決這個問題。

下面的正則表達式將返回包含在<p> </p>標記中的所有 [數據]。

/<p.*?>\[(.*?)\]<*.p>/g

所以上面的正則表達式將從你上面的 HTML 代碼返回這個<p>[data3]&nbsp;&nbsp;[data4]&nbsp;&nbsp;[data5]</p>

當您從上面的正則表達式獲取該字符串時,然后使用下面的正則表達式僅獲取所有 [data] 字符串。

/\[(.*?)\]/g

所以上面的正則表達式將從上面的字符串返回“ [data3][data4][data5] ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM