我需要在C#中使用正则表达式在两个字符串之间获取一个字符串

时间:2013-08-23 21:45:53

标签: c# regex parsing

我有一个字符串例如:"GamerTag":"A Talented Boy","GamerTileUrl"我正在尝试和未能获得的是值:A Talented Boy。我需要帮助创建一个正则表达式字符串,以获得A Talented Boy。有人可以帮帮我!

5 个答案:

答案 0 :(得分:0)

您可以使用字符串方法:

string result = text.Split(':').Last().Split(',').First().Trim('"');

First/Last扩展方法可防止分隔符丢失时出现异常。

Demo

答案 1 :(得分:0)

这个怎么样?

\:\"([^\"]+)\"

这匹配分号和开头引号,并匹配任何非引号字符,直到下一个引号。

答案 2 :(得分:0)

假设s是你的字符串(这里没有检查):

s = s.Split(':')[1].Split(',')[0].Trim('"');

如果您想要Regex解决方案,请点击此处:

s = "\"GamerTag\":\"A Talented Boy\",\"GamerTileUrl\"";
Regex reg = new Regex("(?<=:\").+?(?=\")");
s = reg.Match(s).Value;

答案 3 :(得分:0)

var str = "\"GamerTag\":\"A Talented Boy\",\"GamerTileUrl\"";

var colonParts = str.Split(':');
if (colonParts.Length >= 2) {
    var commaParts = colonParts[1].Split(',');

    var aTalentedBoy = commaParts[0];
    var gamerTileUrl = commaParts[1];
}

这使您还可以获得逗号分隔列表的其他部分。

答案 4 :(得分:0)

我认为可以安全地假设你的字符串实际上比你向我们展示的字符串更大并且它包含多个键/值对?我认为这会做你想要的:

str.Split("GamerTag:\"")[1].Split("\"")[1];

第一个拆分目标"GamerTag:"并在之后获取所有。第二个拆分在"

之后的第一个和第二个"GamerTag:"之间存在所有内容