0

非常に長い文字列を解析する必要がある複雑な状況があります。文字列内のパターンを探して、そのパターンを別のパターンに置き換える必要があります。私は単純にfind/replaceメソッドを使用できることを知っていますが、私の場合は少し異なります。

次のパターンを含む文字列があります

#EPB_IMG#index-1_1.jpg#EPB_IMG


#EPB_IMG#index-1_2.jpg#EPB_IMG


#EPB_IMG#index-1_3.jpg#EPB_IMG


#EPB_IMG#index-1_4.jpg#EPB_IMG

そして私はそれを次のようにフォーマットしたい

#EPB_IMG#index-1_1.jpg|index-1_2.jpg|index-1_3.jpg|index-1_4.jpg#EPB_IMG

Regex私は助けを求めていることについてあまり知りません。

4

3 に答える 3

6

正規表現はやり過ぎです:

var parts = s.Split(new string[] { "#EPB_IMG", "#", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
var result = string.Join("|", parts);

Console.WriteLine("#EPB_IMG#" + result + "#EPB_IMG"); // prints your result.
于 2013-01-09T09:47:33.047 に答える
0

多分このようなもの:

表現:\w+#(?<Image>(.+)\.jpg)#\w+

置換:${Image}

結果:string.Format("#EPB_IMG#{0}#EPB_IMG", string.Join("|", listOfMatches))


注:正規表現は次 のコマンドでテストされています:http://regexhero.net/tester/

結果はテストされていませんが、機能するはずです。

于 2013-01-09T09:46:35.583 に答える
0
var result = "#EPB_IMG" + Regex.Matches(inputString, @"#EPB_IMG(.+)#EPB_IMG")
               .Cast<Match>()
               .Select(m => m.Groups[1].Value)
               .Aggregate((f, f2) => f + "|" + f2) + "#EPB_IMG";
于 2013-01-09T09:58:42.880 に答える