簡體   English   中英

具有特定屬性的正則表達式C#HTML標簽

[英]Regex c# html tags with specific attribute

我是正則表達式的新手:(經過大量搜索我的需求之后,我能夠設法得到答案,但確實得到了額外的結果,如下所述:

我的弦

<td valign="top" width="100%">
<td width="100%" valign="top">
<td valign="top" height="100%" width="100%">
<td valign="top">

我的表情

/<td (?=.*valign="top")(?=.*width="100%").*>/gm

我的結果

<td valign="top" width="100%">
<td width="100%" valign="top">
<td valign="top" height="100%" width="100%">

預期結果

<td valign="top" width="100%">
<td width="100%" valign="top">

結論:我想提取僅具有特定值的具有valign和width屬性的TD標簽。

注意:我必須解析大量數據文件,因此HTMLAgility將減慢整個過程。

請引導我做最后的表達。 干杯

這似乎正在為我做:

\<td\s+((valign="top"\s+width="100%")|(width="100%"\s+valign="top"))\s*>\gm

您的表達式進行搜索以查看這兩個屬性是否在<td開頭之前。 這允許留白,然后在td標記末尾搜索valign="top" width="100%"width="100%" valign="top" ,然后搜索更多可選的空白。 這將禁止除width和valign屬性以外的所有屬性。

話雖如此,使用正則表達式時總是會出現意想不到的情況。 您可以在此處實時測試regex表達式: http : //regexr.com/只需輸入您的字符串和regex表達式即可查看其選擇內容。

編輯:

如果要同時考慮屬性的單引號和雙引號,請嘗試以下一種方法:

\<td\s+((valign=([",'])top\3\s+width=([",'])100%\4)|(width=([",'])100%\6\s+valign=([",'])top\7))\s*>\gm

現在,我允許在屬性值的開頭添加“或”,並搜索在屬性值的末尾找到的匹配項。

同樣,我鼓勵您訪問上面鏈接的網站,並親自嘗試一下。 我幾乎從不使用正則表達式,但是當我這樣做時,通常可以找到適合該網站的表達式。

暫無
暫無

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

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