什麼是正確的正則表達式構造(.NET風格)從HTML樣式字符串中提取屬性/值對,而忽略HTML實體?如何使用正則表達式解析HTML STYLE屬性?
margin-top:0pt;margin:0;color:#000000;margin-left:0;font-size:26pt;margin-bottom:3pt;line-height:1.15;page-break-after:avoid;font-family:"Arial";orphans:2;widows:2;text-align:left;margin-right:0
分割上;
,然後:
將是最簡單的,但作爲HTML實體包含分號,這打破了一些字符串。例如,實體可以存在於font-family
樣式屬性中。
font-family:"Arial";
風格串分離(無style="
)和單線。
最終我會在這個安排中對它們進行正則表達式分組;
match:(
group:(style-attribute-name)
group:(style-attribute-value)
)
通過組以創建一個字典迭代(重複鍵得到更換)。
我現在的正則表達式看起來像這 -
\s*(?<attr>[^:\s]*)\s*:\s*(?<val>[^;]*)[;]\s*
在錯配
和結果,當它擊中的HTML實體。
@ThomasMoors他不想在這裏解析HTML ...只是一個屬性列表。不要每次鏈接此評論「HTML」和「正則表達式」都在同一句話中。 – Gawil
據我所知,所有的HTML實體都以'&'開始並以';'結尾,我錯了嗎?我們可以使用它。 – Gawil
謝謝@Gawil - 正確,但是樣式字符串分隔符也是';'。我對做基本的正則表達式非常熟悉,但我確定如何定義一種忽略實體並將其作爲樣式值內容處理的子模式。 – Memetican