0

例如,我有一个字符串:"GamerTag":"A Talented Boy","GamerTileUrl"而我一直在尝试但未能获得的是 value: A Talented Boy。我需要帮助创建一个正则表达式字符串来专门获取A Talented Boy. 有人能帮帮我吗!

4

5 回答 5

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];
}

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

于 2013-08-23T21:55:58.437 回答
0

我认为可以安全地假设您的字符串实际上比您向我们展示的更大并且它包含多个键/值对?我认为这将满足您的需求:

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

第一个拆分目标"GamerTag:"并获得之后的所有内容。第二个拆分获取"该块中存在的第一个和第二个之间的所有内容"GamerTag:"

于 2013-08-23T22:01:30.927 回答
0

这个怎么样?

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

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

于 2013-08-23T21:50:24.730 回答
0

您可以使用字符串方法:

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

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

Demo

于 2013-08-23T21:48:42.117 回答
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;
于 2013-08-23T21:52:28.647 回答