我从不使用正则表达式,因为它们看起来很复杂,但我知道它们是密集且强大的。我以为我会在你的帮助下给他们一个机会
如何使用正则表达式提取字符串变量中%sometext%的所有出现并返回匹配项的字符串数组?
例如,如果输入字符串是:
set NewVariable=%Variable1%%Variable2%%Variable3%SomeText%Variable4%
输出数组将是:
Array[0]=Variable1
Array[1]=Variable2
Array[2]=Variable3
Array[3]=Variable4
答案 0 :(得分:1)
正则表达式应如下所示:
%([^%]*)%
分隔符在两边,捕获组在我们之间。
以下是:
var mc = Regex.Matches(
"quick%brown%%fox%jumps%over%the%lazy%%dog%"
, "%([^%]*)%"
);
foreach (Match m in mc) {
Console.WriteLine(m.Groups[1]);
}
以上输出如下:
brown
fox
over
lazy
dog
答案 1 :(得分:1)
var NewVariable = "%Variable1%%Variable2%%Variable3%SomeText%Variable4%";
var Array = Regex.Matches(NewVariable, @"%(.+?)%")
.Cast<Match>()
.Select(m => m.Groups[1].Value)
.ToArray();
答案 2 :(得分:0)
您的正则表达式为%[^%]+%
。查看Regex.Matches方法。