regex 通过修改样式修复html表格宽度

93ze6v8z  于 2023-06-07  发布在  其他
关注(0)|答案(3)|浏览(172)

将html表格样式更改为宽度:100%
大家好
我试图修复HTML widh=100%,方法是用正则表达式替换它的样式,并忽略我想替换的另一个样式style=“border-collapse:collapse;边框:1 pt实心窗口文本;高度:457 px;宽度:1077 px;“bystyle=“border-collapse:collapse;边框:1 pt实心窗口文本;高度:457 px; width:100%;"
请帮帮忙。

vojdkbi0

vojdkbi01#

您可以使用以下模式:

string html = "<div style=\"border-collapse:collapse;border:1pt solid windowtext;height:457px;width:1077px;\"></div>";

string updatedHtml = Regex.Replace(html, @"(style=""[^""]*?\bwidth:)\d+px(.*?;"")", "$1100%$2");

我希望这对你有帮助!

j2cgzkjk

j2cgzkjk2#

必须是regex吗?这似乎是一个非常明确的替换操作。
另外,我也不会推荐,我会亲自用适合该任务的库加载html,然后用XPath遍历它。
HtmlAgiltyPack NuGet包在这里会很有用

using HtmlAgilityPack;

var doc = new HtmlDocument();
doc.LoadHtml(html);

var xpath = "// *[contains(@style, 'border-collapse:collapse;border:1pt solid windowtext;height:457px;width:1077px;')]";

var elements = doc.DocumentNode.SelectNodes(xpath);
if (elements != null)
{
    foreach (var element in elements)
    {
        var styleAttribute = element.Attributes["style"];
        if (styleAttribute != null)
        {
            styleAttribute.Value = styleAttribute.Value.Replace("width:1077px", "width:100%");
        };
    }
}
bbuxkriu

bbuxkriu3#

可以使用以下正则表达式替换HTML代码中style属性的width属性:

string input = "<td style=\"border-collapse:collapse;border:1pt solid windowtext;height:457px;width:1077px;\"></td>";
string pattern = @"(style\s*=\s*"")[^""]*(width\s*:\s*)(\d+)(px;)";
string replacement = "$1$2100%;";
string output = Regex.Replace(input, pattern, replacement);

相关问题