1

正規表現は非常に複雑に見えるため、使用したことはありませんが、高密度で強力であることはわかっています。私はあなたの助けを借りて彼らに挑戦しようと思いました

正規表現を使用して文字列変数内のすべての %sometext% を抽出し、一致する項目の文字列配列を返すにはどうすればよいですか?

たとえば、入力文字列が次の場合:

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

出力配列は次のようになります。

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

3 に答える 3

1

正規表現は次のようになります。

%([^%]*)%

区切り文字は両側にあり、キャプチャ グループはそれらの間の 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

これはideoneのデモです。

于 2013-06-08T22:11:10.273 に答える
1
var NewVariable = "%Variable1%%Variable2%%Variable3%SomeText%Variable4%";
var Array = Regex.Matches(NewVariable, @"%(.+?)%")
                 .Cast<Match>()
                 .Select(m => m.Groups[1].Value)
                 .ToArray();
于 2013-06-08T22:12:22.507 に答える
0

あなたの正規表現は%[^%]+%. Regex.Matchesメソッドを見てください。

于 2013-06-08T22:10:41.587 に答える