【问题标题】:How to substring <img src="myimage" /> from a string? [duplicate]如何从字符串中子串 <img src="myimage" />? [复制]
【发布时间】:2014-03-26 03:18:01
【问题描述】:

如何从字符串中获取

Lorem ipsum dolor sit amet <img src='http://www.mydomain.com/images/name_surname.jpg' /> Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

到目前为止我已经尝试过:

sMyText.Substring(sDescription.IndexOf("<img"), count?!);

如何计算谁的图像字符长度?这是我失败的地方。请帮忙..

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    使用正则表达式。

    string sMyText = "Lorem ipsum dolor sit amet <img src='http://www.mydomain.com/images/name_surname.jpg' /> Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.";
    
    Match match = Regex.Match(sMyText, "<img[^>]+>");
    
    if (match.Success)
        Console.WriteLine(match.Value);
    

    【讨论】:

      【解决方案2】:

      你可以使用简单的正则表达式:

      (?=\<)(.*?)(?<=\>)
      

      http://regex101.com/r/cD0cT0

      【讨论】:

        【解决方案3】:

        我真的不喜欢用正则表达式解析 html(参见 this question)。我建议使用HtmlAgilityPack 之类的东西。对于您的示例而言,这似乎有些过头了,但您将来会为自己省去很多痛苦!

        var document = new HtmlDocument();
        document.LoadHtml(html);
        var links = document.DocumentNode.Descendants("img");
        

        【讨论】:

          【解决方案4】:

          使用 LINQ 的解决方案:

          string s = "Lorem ipsum dolor sit amet <img src='http://www.mydomain.com/images/name_surname.jpg' /> Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.";
          
          string img = new string(s.SkipWhile(c => c != '<').TakeWhile(c => c != '>').Concat(">".ToCharArray()).ToArray());
          
          Console.WriteLine(img); // output: <img src='http://www.mydomain.com/images/name_surname.jpg' />
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-25
            • 2014-06-14
            • 1970-01-01
            • 2014-07-11
            • 2020-02-25
            • 1970-01-01
            相关资源
            最近更新 更多