0

正規表現:^.*?(?=;)
値:00574/KVMK0224.jpg; 00574/1987432370PHANWHCO00MM.jpg
現在のみ一致: 00574/KVMK0224.jpg
Want:00574/KVMK0224.jpgおよび00574/1987432370PHANWHCO00MM.jpg

簡単に説明しようとすると、複数の画像リンクを含む文字列があり、最初のリンクを取得できるようにしましたが、すべてのリンクが必要になりました。C# で複数の一致を取得する方法を知っていますregex.Matches。知りたいのは、これに使用する正規表現だけです。

最初のリンクを取得するために必要なもの:

    Regex regex = new Regex("^.*?(?=;)");
    Match match = regex.Match(link);
    if (match.Success)
    {
      part.ImageUrl = match.Value;
    }

すべてのリンクを取得するために私が作成したものは、もちろん正規表現を除いて、すべてが正しいと思います

    Regex regex = new Regex("^.*?(?=;)");
    foreach (Match match in regex.Matches(link))
    {
      list.Add(match.Value);
    }

おそらくこれを行うのは非常に簡単ですが、正規表現の経験はあまりありません。

前もって感謝します!

4

2 に答える 2

3

すべての値が で区切られている ;場合、正規表現は必要ありません。これを試して:

string imagesString = "....";
string[] images = imagesString.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

編集:ここには、正規表現を使用して空白を処理する代替手段があります:

string imagesText = "00574/KVMK0224.jpg; 00574/1987432370PHANWHCO00MM.jpg";
string[] images = Regex.Split(imagesText, @"\s*;\s*");

これは、前後の空白の有無にかかわらず機能します;

于 2012-12-27T10:31:36.243 に答える