我需要在C#中使用regex在两个字符串之间获取一个字符串
本文关键字:字符串 两个 之间 获取 一个 regex | 更新日期: 2023-09-27 18:29:01
我有一个字符串,例如:"GamerTag":"A Talented Boy","GamerTileUrl"
,我一直在尝试但未能得到的是值:A Talented Boy
。我需要帮助创建一个正则表达式字符串来获得A Talented Boy
。有人能帮帮我吗!
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];
}
这也允许您获取逗号分隔列表的其他部分。
假设s是您的字符串(此处不检查):
s = s.Split(':')[1].Split(',')[0].Trim('"');
如果你想有一个Regex
解决方案,这里是:
s = "'"GamerTag'":'"A Talented Boy'",'"GamerTileUrl'"";
Regex reg = new Regex("(?<=:'").+?(?='")");
s = reg.Match(s).Value;
您可以使用字符串方法:
string result = text.Split(':').Last().Split(',').First().Trim('"');
当缺少分隔符时,First/Last
扩展方法可防止出现异常。
演示
我认为可以安全地假设您的字符串实际上比您向我们展示的要大,并且它包含多个键/值对?我认为这将做你正在寻找的:
str.Split("GamerTag:'"")[1].Split("'"")[1];
第一个分割以"GamerTag:"
为目标,并在之后获取所有。第二个分割获取"GamerTag:"
"
之间的所有内容这个怎么样?
':'"([^'"]+)'"
这将匹配分号和开头的引号,并匹配任何非引号字符,直到下一个引号。