正则表达式:跨度和ID动态

时间:2014-06-18 06:47:43

标签: c# regex

C#中的这个正则表达式不起作用:

 Regex regexSpan = new Regex("<span class=\"test\"  id=\"" + value + "\">"(.*?)</span>",
 RegexOptions.Compiled | RegexOptions.IgnoreCase);

我想用我动态指示的ID搜索范围。标签内的文字可以是。

有人可以帮我找到这个正则表达式中的错误吗?

问候。

3 个答案:

答案 0 :(得分:0)

您在第一个&gt;之后添加了额外的结束引号标记。标志。 正则表达式应如下所示:

"<span class=\"test\"  id=\"" + value + "\">(.*?)</span>"

请注意,与HTML相比,class属性并不总是出现在id属性之前,因此此代码仅适用于特定情况。

答案 1 :(得分:0)

尝试:

\<span\s+class\s?=[^\,]+,\s*id\s?=[^\,]+\,?\s*value\s?=[^\>]+([^\<]*)\<\/span\>

匹配

<span class="", id="", value=""></span>

答案 2 :(得分:0)

正则表达式不是旨在解析XML的那个。您应该使用XML parser并尝试使用适当的xpath

Manipulate XML data with XPath and XmlDocument

How to query XML with an XPath expression by using Visual C#