ASP.. NET MVC:多次匹配正则表达式

本文关键字:正则表达式 NET MVC ASP | 更新日期: 2023-09-27 17:49:51

Regex: ^.*?(?=;)
取值范围:00574/KVMK0224.jpg; 00574/1987432370PHANWHCO00MM.jpg
现在只匹配:00574/KVMK0224.jpg
要求:00574/KVMK0224.jpg00574/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);
    }

这样做可能很简单,但是我没有太多使用正则表达式的经验。

提前感谢!

ASP.. NET MVC:多次匹配正则表达式

如果所有值由;分隔,则不需要正则表达式。试试这个:

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*");

;

前后是否有空格都可以。

也许你可以试试这个?

['w/]*?.jpg(?=;)?