由于小弟没学过正则表达式,时间紧迫,要学也得花时间了,所以先请了解的朋友们给点帮助,顺便介绍点关于正则表达式的学习方法!如下:
<!news name="title" id="title" style="class1"><!/news>就是要从字符串中捕获至少满足此格式<!news name="title"><!/news>的字符串,并且获取其属性值!谢谢大家了!
<!news name="title" id="title" style="class1"><!/news>就是要从字符串中捕获至少满足此格式<!news name="title"><!/news>的字符串,并且获取其属性值!谢谢大家了!
using System;
using System.Text.RegularExpressions;class TestReg2
{
static void Main()
{
string s = " <!news name=\"title\" id=\"title\" style=\"class1\">xxxx<!/news> ";
Regex re = new Regex(@"<!news(\s*(?<name>[^>=]+)=""(?<value>[^""]*)"")*\s*>(?<content>[^>]*)<!/news>", RegexOptions.IgnoreCase);
Match m = re.Match(s);
if (m.Success)
{
Console.WriteLine(m.Groups["content"].Value);
for (int i=0; i < m.Groups["name"].Captures.Count; i++)
Console.WriteLine("{0}:{1}={2}",i+1, m.Groups["name"].Captures[i].Value , m.Groups["value"].Captures[i].Value );
}
}
Regex re = new Regex(@"<!news(\s*(?<name>[^>=]+)=(?:""(?<value>[^""]*)""|'(?<value>[^']*)'|(?<value>[^\s>]*)))*\s*>(?<content>[^>]*)<!/news>", RegexOptions.IgnoreCase);
s = Regex.Replace(s,@"(?<=>)[^>]*(?=<)","new string here");
Console.WriteLine(s);