正则表达式从分隔符之间的字符串中提取值

时间:2012-05-07 16:50:55

标签: c# regex string

我有一个大字符串,我需要从中提取String值。字符串值位于分隔符

之间
category = '

';

这是我的正则表达式,但我需要避免输出分隔符。

String productCategory = Regex.Match(html, @"category = '(.*?)';").Value;

这是例子 category = 'Video Cards';

我需要提取 Video Cards

3 个答案:

答案 0 :(得分:3)

你可以使用的是前瞻和后视操作符,所以你最终得到的结果如下:

string pattern = @"(?<=category = ').*(?=';)";
string productCategory = Regex.Match(html, pattern ).Value;

值得一提的是parsing HTML with regexes is a bad idea。您应该使用HTML解析器来解析HTML。

答案 1 :(得分:1)

您是否考虑过使用MatchObj.Groups财产?如果您在Derek Slager's等测试网站上测试当前的正则表达式,您会发现您想要的是第一个组。您应该只需调用第一个组并获得所需内容即可。

productCategory.Groups[0].Value

答案 2 :(得分:0)

您想要提取小组:

String productCategory = Regex.Match(html, @"category = '(.*?)';").Groups[1].Value;