c#正则表达式查找变量模式
本文关键字:模式 变量 查找 正则表达式 | 更新日期: 2023-09-27 18:19:09
我需要解析以下面代码示例的方式格式化的html。我遇到的问题是,字段名可以包装在具有可变背景或颜色样式的标签中。我正在寻找的模式是
标记,忽略任何带冒号的文本包装的span(这是模式
id:没有span标记包装)。匹配这个模式应该会给我键名,键名后面的就是键值,直到碰到下一个键名。下面是我需要解析的html示例:
string source = "
<br />id: Value here
<br /><SPAN style='"background-color: #A0FFFF; color: #000000'">community</SPAN>: Value here
<br /><SPAN style='"background-color: #A0FFFF; color: #000000'">content</SPAN><SPAN style='"background- color: #A0FFFF; color: #000000'">title</SPAN>: Value here
"
//split the source into key value pairs based on the pattern match.
谢谢你的帮助
这里有一些代码将解析它,假设您的示例HTML应该在' content'之后有另一个<br />
元素。
string source = @"
<br />id: Value here
<br /><SPAN style=""background-color: #A0FFFF; color: #000000"">community</SPAN>: Value here
<br /><SPAN style=""background-color: #A0FFFF; color: #000000"">content</SPAN>
<br /><SPAN style=""background-color: #A0FFFF; color: #000000"">title</SPAN>: Value here";
var items = Regex.Matches(source,@"<br />(?:<SPAN[^>]*>)?([^<:]+)(?:</SPAN>)?:?'s?(.*)")
.OfType<Match>()
.ToDictionary (m => m.Groups[1].Value, m => m.Groups[2].Value)
.ToList();