[英]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] [data4] [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] [data4] [data5]</p>
。
當您從上面的正則表達式獲取該字符串時,然后使用下面的正則表達式僅獲取所有 [data] 字符串。
/\[(.*?)\]/g
所以上面的正則表達式將從上面的字符串返回“ [data3][data4][data5] ”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.