我有一个包含大量文本的字符串。我需要找到位于其间的所有值 'site.com/PI/'和'/500/item.jpg
示例:
String STRING = @"
http://site.com/PI/0/500/item.jpg
blah-blah
http://site.com/PI/1/500/item.jpg
blah-blah
http://site.com/PI/2/500/item.jpg
blah-blah
http://site.com/PI/4/500/item.jpg
blah-blah
http://site.com/PI/8/500/item.jpg
blah-blah
http://site.com/PI/6/500/item.jpg blah-blah"
需要获取{0,1,2,4,8,6}的列表
使用正则表达式很容易出现一次:
Regex.Match(STRING, @"(?<=/PI/).*(?=/500/)").Value;
如何将所有出现的问题都列入一个清单?
答案 0 :(得分:2)
您可以使用LINQ。
List<string> matches = Regex.Matches(STRING, @"(?<=/PI/).*(?=/500/)")
.Cast<Match>()
.Select(m => m.Value)
.ToList();
答案 1 :(得分:1)
您可以使用Matches
功能。它将返回Match
个对象的集合。
var matches = Regex.Matches(STRING, @"(?<=/PI/).*(?=/500/)")
foreach(Match match in matches)
{
Console.WriteLine(match.Value);
}