使用 Regex/C# 将 转换为

2024-04-30

奇怪的问题,但我不会浪费时间解释为什么我需要这样做,只是我需要这样做。

我有以下内容:

<input type="radio" name="eq_9" id="eq_9_2"  onclick="nextStepID_load(this);" value="Installer." title="912" /><label for="eq_9_2">Installer</label> <br />

我需要把它变成:

<button type="button" name="eq_9" id="eq_9_2" onclick="nextStepID_load('912');">Installer</button><br />

我正在使用 C#/asp.net(3.5 或更低版本)和 javascript 作为 PerformJS(在我弄清楚如何替换 html 之前,它是一个占位符)。

请注意,提供此信息的来源正在向我发送一个包含许多输入行的字符串。我需要用对其有效的信息替换每一行。

现在,我尝试添加 .Replace("","\">"); 它确实替换了单选标签,但显然使其在代码方面看起来很糟糕,并且不会删除标签或将标签内容放入标签之间。

我确信这可能最好通过正则表达式来解决,但我对正则表达式不太熟悉。我一直在玩弄 regexlib,看看我是否可以自己找出一个正则表达式...这是我到目前为止所拥有的,尽管我想我还很遥远。

string strRegex = @"<input type=""radio"" [\s]*=[\s]*""?[^\w_]*""?[^>]*>";
RegexOptions myRegexOptions = RegexOptions.IgnoreCase | RegexOptions.Multiline;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"<input type=""radio"" name=""eq_9"" id=""eq_9_2""  onclick=""nextStepID_load(this);"" value=""Installer."" title=""912"" /><label for=""eq_9_2"">Installer</label> <br />";
string strReplace = "<button type="button"></button>";
return myRegex.Replace(strTargetString, strReplace);

不要使用正则表达式来处理 HTML。它只够灵活应对 95% 的情况,这应该告诉您,它是不适合这项工作的工具。

使用HTML 敏捷包 http://html-agility-pack.net/?z=codeplex,您可以加载文档并使用类似的内容来替换...

HtmlDocument doc = new HtmlDocument();
doc.Load(@"C:\Path\To\Page.html");

HtmlNode radios = doc.SelectNodes("//input[@type=radio]");

foreach (HtmlNode node in radios)
{
    HtmlAttribute name = node.Attributes["name"];

    if (name != null && name.ToLower().StartsWith("eq_"))
    {
        //Build your button element and replace the radio using ReplaceChild
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Regex/C# 将 转换为

随机推荐

  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能
  • 为什么不调用 GrantRefreshToken 方法 - Oauth2 ASP.NET Web API

    我使用请求正文向 oauth2 服务器发送请求 grant type refresh token refresh token abc 我将refresh token保存在数据库中 接收异步方法 public async Task Recei
  • 如何在 Visual Studio 2019 中创建 xamarin PCL 项目

    在 VS 2019 中创建新的 xamarin 项目时 我没有 PCL 项目的选项 我得到如图所示的选项 我运行旧的 PCL 项目 它运行成功 请帮我在 VS 2019 中创建 PCL 项目 可移植类库 PCL are 已弃用在最新版本的
  • 使用变量 Criteria VBA 自动筛选

    我试图使用变量在工作表上放置自动过滤器 但它不起作用 Dim Criteria As Object i 1 Set Criteria ActiveSheet Cells i 1 MsgBox Criteria Value this retu
  • AngularJS 和 Webpack 集成

    我正在寻找一些使用帮助webpack http webpack github io docs 对于大型 AngularJS 应用程序 我们使用基于功能的文件夹结构 每个功能 页面都有一个模块 并且它们有控制器 指令 我已经成功配置了 web
  • 如何使用 Jericho HTML 解析器获取特定标签之间的文本和其他标签?

    我有一个包含特定标签的 HTML 文件 例如 table cellspacing 0 结束标签是 table 现在我想获取这些标签之间的所有内容 我正在 Java 中使用 Jericho HTML 解析器来解析 HTML 是否可以获取 Je
  • 按名称调用作为对象成员的 javascript 函数

    我希望能够通过名称将对任意函数的引用传递给另一个 javascript 函数 如果只是一个全局函数 没有问题 function runFunction funcName window funcName 但假设该函数可以是任意对象的成员 例如
  • 汇编中如何计算负数

    我是汇编新手 我有一个关于如何表示负数的问题 我有三个 DWORDS 变量 比方说 result DWORD 0 i DWORD 3 j DWORD 5 我想计算这个公式 结果 i j 8 但是 当我执行 i j 时 由于符号 结果将是一个
  • 检查 Django 模板内的权限

    我可以在 Django 模板内使用 Auth 应用程序的权限检查吗 我想在模板末尾为特权用户显示一个简单的表单 更重要的是 我应该这样做还是这不是 Django 方式 如果您要检查模板中的权限 以下代码就足够了 if perms app l
  • GitHub:本地使用 wiki:首次推送到 GitHub wiki 时出错

    这个问题我搜索了很多次 还是无法解决 假设我从 user1 分叉了一个存储库 我们将其命名为 repo1 现在我也想分叉该存储库的 Wiki 部分 当您分叉存储库时 GitHub 不会为您做任何事情 https stackoverflow
  • 允许用户将自己的 JavaScript 添加到您的网站是否存在安全问题?

    我计划创建一个开源教育网络应用程序 人们可以在其中添加和编辑内容 有点像维基百科 不过 我希望添加另一个功能 允许用户使用 JavaScript 添加自己的交互式内容 类似于 JSFiddle 的做法 这样做有哪些安全问题 可选问题 如何克
  • 在包含一些通配符的大型列表中进行成员资格测试

    当列表包含特殊类别时 如何测试某个短语是否在大型 650k 短语列表中 例如 我想测试这个短语是否 he had the nerve 在列表中 确实如此 但是在 he had DETERMINER nerve where DETERMINE
  • Java 应用程序中 PKIX 路径构建失败

    将应用程序从 Windows 2000 迁移到 Windows 2008 R2 Server 后 我花了将近一周的时间才让我的应用程序正常运行 步骤 安装Java JDK 1 7 0 25 设置系统环境变量JAVA HOME to C Pr
  • SQL 按行计数模进行分组

    我有以下示例数据 Id Name Quantity 1 Red 1 2 Red 3 3 Blue 1 4 Red 1 5 Yellow 3 因此 对于此示例 总共有 5 个红色 1 个蓝色和 3 个黄色 我正在寻找一种按颜色对它们进行分组的
  • 在 Windows 7 中安装 Express.JS 的问题

    我已通过其网页上的安装程序安装了 Node js 并将其路径添加到我的环境变量中 以便我可以使用node and npm通过命令行 如果我制作一个快速应用程序 它可以工作 但我必须手动创建它 我想这很好 但我想知道为什么我不能使用expre
  • Java泛型方法不能调用另一个约束更宽松的泛型方法并返回其值

    我想这样做
  • 访问 ASP.NET 中 App_Code 中未声明的类

    我有时定义业务逻辑类来 帮助 我的 ASPX 代码隐藏类 对我来说 将它们都包含在代码隐藏文件中是最有意义的 因为它们一起工作 但是 我偶尔想从 App Code 中定义的更高级别的类访问业务逻辑类 但它们不能在文件外部自动访问 因此 问题
  • 开源 C# 套接字 (TCP + UDP) 库 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对 NET 框架的标准套接字类感到头疼 有人可以推荐一个高效的开源 C 套接字 TCP UDP 库来处理套接字消息吗 使用 Kerry Jia
  • 如何组合多个 TUI 表单来编写更复杂的应用程序?

    我想写一个程序T基于外部的User I界面 TUI https en wikipedia org wiki Text based user interface 由多种形式组成 第一种形式包含一个 列表 每个列表元素代表一个按钮 如果按下相应
  • 使用 Regex/C# 将 转换为

    奇怪的问题 但我不会浪费时间解释为什么我需要这样做 只是我需要这样做 我有以下内容