繁体   English   中英

从text和html标记中将字符串拆分为数组

[英]Split string to array from text and html tag

我有一个字符串

string html = "truongpm<b><i>bold italic</i></b><b>bold</b><i>italic</i>";

我如何获得数组

a[0] = "truongpm", a[1]= "<b><i>bold</i></b>", a[2]="<b>bold</b>", a[3]="<i>italic</i>"

从这个字符串。 现在我使用这段代码

string tagRegex = @"<\s*([^ >]+)[^>]*>.*?<\s*/\s*\1\s*>";
MatchCollection matchesImgSrc = Regex.Matches(html, tagRegex, RegexOptions.IgnoreCase | RegexOptions.Singleline);
        foreach (Match m in matchesImgSrc)

但它只是得到

a[0]= "<b><i>bold</i></b>", a[1]="<b>bold</b>", a[2]="<i>italic</i>"

没有“truongpm”请帮帮我! 谢谢

这是您可以使用的代码:

var l = new List<string>();
var html = "truongpm<b><i>bold italic</i></b><b>bold</b><i>italic</i>";
var tagRegex = @"[^<>]+|<\s*([^ >]+)[^>]*>.*?<\s*/\s*\1\s*>";
var matchesImgSrc = Regex.Matches(html, tagRegex, RegexOptions.IgnoreCase | RegexOptions.Singleline);
foreach (Match m in matchesImgSrc)
    l.Add(m.Value);

您的RegExp仅匹配标记内的字符串。 如果您想要捕获没有任何标记的字符串,则必须添加正则表达式的替代方法。 这可以通过添加([^<>]+)来完成,这样你的表达式就像([^<>]+)|{your existing expression} 在像Regex Pal这样的网站上,您可以找到创建正则表达式的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM