C# 使用正则表达式分析字符串中出现的%SOMETEXT%

C# 使用正则表达式分析字符串中出现的%SOMETEXT%,c#,C#,我从不使用正则表达式,因为它们看起来很复杂,尽管我知道它们很密集而且功能强大。我想我会在你的帮助下给他们一次机会 如何使用正则表达式提取字符串变量中出现的所有%sometext%,并返回匹配项的字符串数组 例如,如果输入字符串为: set NewVariable=%Variable1%%Variable2%%Variable3%SomeText%Variable4% 输出数组将是: Array[0]=Variable1 Array[1]=Variable2 Array[2]=Variable3

我从不使用正则表达式,因为它们看起来很复杂,尽管我知道它们很密集而且功能强大。我想我会在你的帮助下给他们一次机会

如何使用正则表达式提取字符串变量中出现的所有%sometext%,并返回匹配项的字符串数组

例如,如果输入字符串为:

set NewVariable=%Variable1%%Variable2%%Variable3%SomeText%Variable4%
输出数组将是:

Array[0]=Variable1
Array[1]=Variable2
Array[2]=Variable3
Array[3]=Variable4

正则表达式是
%[^%]+%
。看看这个方法。

正则表达式应该如下所示:

%([^%]*)%
brown
fox
over
lazy
dog
分隔符在两侧,捕获组是它们之间的i

以下是如何:

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
这是一个。

var NewVariable=“%Variable1%%Variable2%%Variable3%SomeText%Variable4%”;
var Array=Regex.Matches(NewVariable,@“%(.+?)%”)
.Cast()
.Select(m=>m.Groups[1]。值)
.ToArray();