使用正则表达式解析字符串中%SOMETEXT%的出现次数

时间:2013-06-08 22:07:30

标签: c#

我从不使用正则表达式,因为它们看起来很复杂,但我知道它们是密集且强大的。我以为我会在你的帮助下给他们一个机会

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

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

set NewVariable=%Variable1%%Variable2%%Variable3%SomeText%Variable4%

输出数组将是:

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

3 个答案:

答案 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

这是demo on ideone

答案 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方法。