C#用正则表达式 获取标签的属性或值

时间: 2023-07-27 13:07:35 浏览: 24
你可以使用正则表达式来匹配标签的属性或值,以下是一个 C# 示例代码: ```csharp using System; using System.Text.RegularExpressions; class Program { static void Main() { string input = "<div class=\"my-class\" data-value=\"123\">Hello World!</div>"; string pattern = "(?<attr>\\w+)\\s*=\\s*(\"(?<value>[^\\\"]*)\"|'(?<value>[^']*)')"; MatchCollection matches = Regex.Matches(input, pattern); foreach (Match match in matches) { Console.WriteLine("Attribute: {0}, Value: {1}", match.Groups["attr"].Value, match.Groups["value"].Value); } } } ``` 在上述示例中,我们使用正则表达式 `"(?<attr>\\w+)\\s*=\\s*(\"(?<value>[^\\\"]*)\"|'(?<value>[^']*)')"` 来匹配标签的属性或值。该正则表达式的含义是:首先匹配一个属性名(由字母、数字、下划线组成),然后匹配等号和属性值,其中属性值可以用单引号或双引号括起来。通过使用命名捕获组 `(?<attr>\\w+)` 和 `(?<value>[^\\\"]*)`,我们可以轻松地获取属性名和属性值。

相关推荐

在C#中,星号(*)是正则表达式中的特殊字符之一。星号表示匹配前面的元素零次或多次。在正则表达式中,可以通过在模式中使用星号来匹配任意数量的重复字符或子模式。 例如,如果我们有一个字符串"abbbbcccdd",我们可以使用正则表达式"ab*c"来匹配这个字符串中的"abbbbccc"部分。在这个表达式中,星号表示匹配前面的字符'b'零次或多次。因此,它会匹配任意数量的'b'字符。 以下是一个使用星号的C#正则表达式示例: using System; using System.Text.RegularExpressions; public class Program { public static void Main() { string input = "abbbbcccdd"; string pattern = "ab*c"; Regex rgx = new Regex(pattern); Match match = rgx.Match(input); if (match.Success) { Console.WriteLine("匹配成功!"); } else { Console.WriteLine("匹配失败!"); } } } 在这个示例中,正则表达式"ab*c"匹配一个以'a'开头,以'c'结尾,中间可以有任意数量的'b'字符的字符串。因此,它会输出"匹配成功!"。 请注意,为了在C#中使用正则表达式,我们需要引入命名空间System.Text.RegularExpressions,并使用Regex类来实例化正则表达式对象。然后,我们可以使用Match方法来检查输入字符串是否与模式匹配。 希望以上信息对您有所帮助。123 #### 引用[.reference_title] - *1* *2* [C# 正则表达式替换身份证号中间部分为星号](https://blog.csdn.net/weixin_40508362/article/details/108054301)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [几个C#常用正则表达式的总结](https://download.csdn.net/download/weixin_38667207/14008486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

最新推荐

C#正则表达式大全, 判断字符串是否为正整数,中文,英文.....

包含了常用正则表达式的使用,验证,正则表达式替换字符串,判断字符串是否为正整数,判断输入的字符串是否全是英文、中文....

C#通过属性名称获取(读取)属性值的方法

本文主要介绍了C#通过属性名称获取(读取)属性值的方法,并提供了简化版代码,具有很好的参考价值,需要的朋友可以看下

全球汽车行业高管调研.pdf

全球汽车行业高管调研.pdf

基于单片机温度控制系统设计--大学毕业论文.doc

基于单片机温度控制系统设计--大学毕业论文.doc

"REGISTOR:SSD内部非结构化数据处理平台"

REGISTOR:SSD存储裴舒怡,杨静,杨青,罗德岛大学,深圳市大普微电子有限公司。公司本文介绍了一个用于在存储器内部进行规则表达的平台REGISTOR。Registor的主要思想是在存储大型数据集的存储中加速正则表达式(regex)搜索,消除I/O瓶颈问题。在闪存SSD内部设计并增强了一个用于regex搜索的特殊硬件引擎,该引擎在从NAND闪存到主机的数据传输期间动态处理数据为了使regex搜索的速度与现代SSD的内部总线速度相匹配,在Registor硬件中设计了一种深度流水线结构,该结构由文件语义提取器、匹配候选查找器、regex匹配单元(REMU)和结果组织器组成。此外,流水线的每个阶段使得可能使用最大等位性。为了使Registor易于被高级应用程序使用,我们在Linux中开发了一组API和库,允许Registor通过有效地将单独的数据块重组为文件来处理SSD中的文件Registor的工作原

如何使用Promise.all()方法?

Promise.all()方法可以将多个Promise实例包装成一个新的Promise实例,当所有的Promise实例都成功时,返回的是一个结果数组,当其中一个Promise实例失败时,返回的是该Promise实例的错误信息。使用Promise.all()方法可以方便地处理多个异步操作的结果。 以下是使用Promise.all()方法的示例代码: ```javascript const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); const promise3 = Promise.resolve(3)

android studio设置文档

android studio默认设置文档

海量3D模型的自适应传输

为了获得的目的图卢兹大学博士学位发布人:图卢兹国立理工学院(图卢兹INP)学科或专业:计算机与电信提交人和支持人:M. 托马斯·福吉奥尼2019年11月29日星期五标题:海量3D模型的自适应传输博士学校:图卢兹数学、计算机科学、电信(MITT)研究单位:图卢兹计算机科学研究所(IRIT)论文主任:M. 文森特·查维拉特M.阿克塞尔·卡里尔报告员:M. GWendal Simon,大西洋IMTSIDONIE CHRISTOPHE女士,国家地理研究所评审团成员:M. MAARTEN WIJNANTS,哈塞尔大学,校长M. AXEL CARLIER,图卢兹INP,成员M. GILLES GESQUIERE,里昂第二大学,成员Géraldine Morin女士,图卢兹INP,成员M. VINCENT CHARVILLAT,图卢兹INP,成员M. Wei Tsang Ooi,新加坡国立大学,研究员基于HTTP的动态自适应3D流媒体2019年11月29日星期五,图卢兹INP授予图卢兹大学博士学位,由ThomasForgione发表并答辩Gilles Gesquière�

MutableDenseMatrix' object has no attribute 'flatten'

根据提供的引用内容,可以看出这是一个关于Python中矩阵操作的问题。具体来说,'MutableDenseMatrix' object has no attribute 'flatten'的错误提示表明,矩阵对象没有名为'flatten'的属性。因此,我们需要使用其他方法来展平该矩阵对象。 以下是一种可能的解决方案: ```python # 导入必要的库 from sympy import Matrix # 创建一个矩阵对象 mat = Matrix([[1, 2], [3, 4]]) # 将矩阵对象转换为列表 mat_list = mat.tolist() # 将列表展平 flat

MySQL 75道面试题及答案.docx

MySQL 75道面试题及答案.docx