格式字符串的 C# 正则表达式
C# regular expression for string of format
谁能为我提供以下字符串的正则表达式
{"Name" : "TestName", "Street" : "TestStreet", "Place" : "TestPlace", "Country" : "TestCountry", "Type" : "TestType"}
您提供的是 JSON 字符串,并且 JSON 字符串具有级联行为,因此 最好不要使用正则表达式 进行解析。你应该使用 Json.Decode
.
仅当保证文件将保持平坦时,您才可以使用正则表达式对其进行解析。但我强烈反对它,它最终总是会失败,因为人们最终会运行它使用非平面JSON输入。但是我们开始吧(别说我没警告过你):
Regex regex = new Regex("^\s*\{(\s*,?\s*\\"([^\"]*)\\"\s*:\s*\\"([^\"]*)\\")*\}\s*$");
然后您可以使用以下方法处理结果:
string json = "{\"Name\" : \"TestName\", \"Street\" : \"TestStreet\", \"Place\" :
\"TestPlace\", \"Country\" : \"TestCountry\", \"Type\" : \"TestType\"}";
Dictionary<string,string> result = new Dictionary<string,string>();
Match m = regex.Match(json);
if(m.Success) {
int captures = m.Groups[2].Captures.Count;
for(int i = 0; i < captures; i++) {
result.Add(m.Groups[2].Captures[i].Value,m.Groups[3].Captures[i].Value);
}
}
result
比 Dictionary<string,string>
包含键及其对应值。
谁能为我提供以下字符串的正则表达式
{"Name" : "TestName", "Street" : "TestStreet", "Place" : "TestPlace", "Country" : "TestCountry", "Type" : "TestType"}
您提供的是 JSON 字符串,并且 JSON 字符串具有级联行为,因此 最好不要使用正则表达式 进行解析。你应该使用 Json.Decode
.
仅当保证文件将保持平坦时,您才可以使用正则表达式对其进行解析。但我强烈反对它,它最终总是会失败,因为人们最终会运行它使用非平面JSON输入。但是我们开始吧(别说我没警告过你):
Regex regex = new Regex("^\s*\{(\s*,?\s*\\"([^\"]*)\\"\s*:\s*\\"([^\"]*)\\")*\}\s*$");
然后您可以使用以下方法处理结果:
string json = "{\"Name\" : \"TestName\", \"Street\" : \"TestStreet\", \"Place\" :
\"TestPlace\", \"Country\" : \"TestCountry\", \"Type\" : \"TestType\"}";
Dictionary<string,string> result = new Dictionary<string,string>();
Match m = regex.Match(json);
if(m.Success) {
int captures = m.Groups[2].Captures.Count;
for(int i = 0; i < captures; i++) {
result.Add(m.Groups[2].Captures[i].Value,m.Groups[3].Captures[i].Value);
}
}
result
比 Dictionary<string,string>
包含键及其对应值。