使用正则表达式在引号内获取文本

时间:2013-05-29 14:01:45

标签: c# .net regex

我想使用regex

提取引号内的数据
My Text is : boundary="s323sd2342423---"

现在我需要在不使用子字符串的情况下提取双引号内的值。

我尝试了以下但没有帮助。

String pattern = @"boundary=""(?<value>[^""]*";
Match m = Regex.Match(rawMessage, pattern);
while (m.Success)
{
    boundaryString = m.Groups["value"].Value;
    m = m.NextMatch();
}

4 个答案:

答案 0 :(得分:2)

您需要关闭组的左括号

String pattern = @"boundary=""(?<value>[^""]*)";

现在,如果你选择

Console.WriteLine(m.Groups["value"].Value);

将打印:

s323sd2342423---

答案 1 :(得分:1)

您可以使用此模式,它将起作用。

String pattern = @"boundary=\""(?<value>.+?)\""";

答案 2 :(得分:1)

使用以下正则表达式,您将获得所需的内容而无需任何分组

(?<=boundary=")[^"]+(?=")

获取引用文字的代码:

string txt = "boundary=\"s323sd2342423---\"";
string quotedTxt = Regex.Match(txt, @"(?<=boundary="")[^""]+(?="")").Value;

答案 3 :(得分:0)

根据你的详细信息:

  

我想使用regex

提取引号内的数据

为什么不使用这种模式:

"(?<value>[^"]+)"