C# 从C语言中的大文本中获取特定字符串
我有以下巨大的文本: 我需要从标准分辨率获取所有图像URLC# 从C语言中的大文本中获取特定字符串,c#,regex,string,image,url,C#,Regex,String,Image,Url,我有以下巨大的文本: 我需要从标准分辨率获取所有图像URL "standard_resolution": { "url": "http://distilleryimage3.s3.amazonaws.com/59d6984092a211e392db12e25f465f4f_8.jpg", "width": 640, "height": 640 } 例如:从中,我想得到: 毕竟我想要一个包含所有标准URL的字符串列表。 我正在制作一个C应用程序。我想你可以使用这个模式:^http://[a-zA
"standard_resolution": {
"url": "http://distilleryimage3.s3.amazonaws.com/59d6984092a211e392db12e25f465f4f_8.jpg",
"width": 640,
"height": 640
}
例如:从中,我想得到:
毕竟我想要一个包含所有标准URL的字符串列表。
我正在制作一个C应用程序。我想你可以使用这个模式:^http://[a-zA-Z0-9\-\.]+.[a-zA-Z]{2,3}/\S*$ 以下是一个例子:
var pattern = @"^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$";
var result= File.ReadAllText("filepath")
.Split(new[] {'"'}, StringSplitOptions.RemoveEmptyEntries)
.Where(line => Regex.IsMatch(line, pattern))
.ToList();
我已测试,结果包含25个url供您输入。尝试:
List<String> urls = new List<String>();
string txt = "standard_resolution...."; // Your main text
while(txt.Contains("url"))
{
txt = txt.Substring(txt.IndexOf("url\": \""));
string geturl = txt.Substring(txt.IndexOf("url")+7, txt.IndexOf(".jpg") - txt.IndexOf("url")-3);
urls.Add(geturl);
txt = txt.Substring(txt.IndexOf(".jpg"));
}
塞尔曼22:你的答案会得到所有的URL,而他只想要标准分辨率的URL 这是我编的一个又快又脏的正则表达式。 您可能需要对它进行一些调整,以涵盖所有我还没有想到的关于JSON结构的潜在情况,以防它与您发布的源代码略有不同
const string input = @"
""standard_resolution"": {
""url"": ""http://distilleryimage3.s3.amazonaws.com/59d6984092a211e392db12e25f465f4f_8.jpg"",
""width"": 640,
""height"": 640
}";
var pattern = @"\""standard_resolution\"".*?\""url\""\:\s\""(?<url>.*?)\""";
var urls = Regex.Matches(input.Replace("\r\n", string.Empty), pattern)
.Cast<Match>()
.Select(each => each.Groups["url"].Value);
var count = urls.Count();
问题直接范围之外的另一种选择是使用JSON解析器:
您的文本示例看起来像JSON。解析json并获取所有url值可能会更容易。这是一个json,但我如何使用CThere来实现呢?同样的问题有更好的答案。确切地但是我只想要标准的解析url'sIt'only在它是常量字符串的情况下工作,但是我使用以下命令获取de-JSON:var JSON=cliente.DownloadString**TOKEN**;您是否像我的代码那样删除输入中的新行?input.Replace\r\n,string.Empty您可能还需要根据Web服务器的格式尝试删除\r\n或\r\n。哦,我知道了。这类代码的模式是什么:标准分辨率:{url:http:\/\/蒸馏图像9.s3.amazonaws.com\/382b566491f211e3ae050a2150c32a45_8.jpg,宽度:640,高度:640}},用户在照片中:[],标题:{创建时间:1391995536,文本:thenight2,发件人:{用户名:thenight2,个人资料\图片:http:\/\/images.ak.instagram.com\/profiles\/anonymousUser.jpg,id:1082107741,全名:The Night Party 2},id:652428307931519401},用户\喜欢:false,id:65242830723564996\ u 1082107741,用户:{用户名:thenight2代码采用单行格式。