0

正则表达式:^.*?(?=;)
值:00574/KVMK0224.jpg; 00574/1987432370PHANWHCO00MM.jpg
现在只匹配:00574/KVMK0224.jpg
想要:00574/KVMK0224.jpg00574/1987432370PHANWHCO00MM.jpg

当我试图尽快解释时,我有一个包含多个图像链接的字符串,我使它能够获取第一个链接,但现在我想要所有链接。我知道如何regex.Matches在 C# 中使用来获得多个匹配项,我唯一想知道的是为此使用什么正则表达式。

我必须得到第一个链接:

    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 回答
1

也许你可以试试这个?

[\w/]*?.jpg(?=;)?
于 2012-12-27T10:38:07.087 回答