我有一個Html字符串,我想刪除if和endif標記以及它之間的所有內容。從html中刪除if和endif標記
<![if ..]><style>...</style><![endif]>
我曾嘗試以下的正則表達式:
<![if.*[endif]>
<!\\[if.*\\[endif\\]>
是上述正則表達式缺少一些東西專用箱支架?
我有一個Html字符串,我想刪除if和endif標記以及它之間的所有內容。從html中刪除if和endif標記
<![if ..]><style>...</style><![endif]>
我曾嘗試以下的正則表達式:
<![if.*[endif]>
<!\\[if.*\\[endif\\]>
是上述正則表達式缺少一些東西專用箱支架?
html = Regex.Replace(html,@"(?is)<!\[if.*?\]>.*?<!\[endif\]>","");
我認爲你是對的。
輸入:
<![if IE]>IE<br /><![endif]>
<![if IE 6]>IE 6<br /><![endif]>
模式:
<!\\[if.*\\[endif\\]>
匹配2計數。
但我認爲你的實際情況是「如果」和「endif」是在不同的行。所以你必須使用Singleline選項來使Dot(。)包含新行。
輸入:
<![if IE]>
IE<br />
<![endif]>
<![if IE 6]>
IE 6<br />
<![endif]>
佈線圖案(單線選項):
<!\\[if.*\\[endif\\]>
匹配1個計數。
它匹配,但只有1個匹配所有字符串。由於Dot(。)搜索所有以「[endif]>」結尾的字符串,而不是先停止「[endif]>」字符串。
所以你必須使用?在第一場比賽中停止。
輸入:
<![if IE]>
IE<br />
<![endif]>
<![if IE 6]>
IE 6<br />
<![endif]>
佈線圖案(單線選項):
<!\\[if.*?\\[endif\\]>
匹配2個字。
另外,我認爲你展示了條件註釋的錯誤用法。
這
<![if ..]><style>...</style><![endif]>
應更改爲
<!--[if ..]><style>...</style><![endif]-->