问题是这样的,下面是两个标签
{mylabel type="title"/}
这个标签的意思是显示一个文章的标题
{mylabel type="articleList" wordlength="30" articleTypeId="20"/}
这个标签的意思是显示文章所属类型的id为20的文章列表,标题最大长度为30,超过部分用省略号代替
现在的问题是:要用正则表达式匹配出这个标签,并且获取里面的属性。
如:一个页面中有多个这样的标签,把这些标签都获取到,然后根据id的不同以及其他相关的属性的不同替换成不同的内容。
请问实现的方法
{mylabel type="title"/}
这个标签的意思是显示一个文章的标题
{mylabel type="articleList" wordlength="30" articleTypeId="20"/}
这个标签的意思是显示文章所属类型的id为20的文章列表,标题最大长度为30,超过部分用省略号代替
现在的问题是:要用正则表达式匹配出这个标签,并且获取里面的属性。
如:一个页面中有多个这样的标签,把这些标签都获取到,然后根据id的不同以及其他相关的属性的不同替换成不同的内容。
请问实现的方法
@"(?<=\{mylabel)(?<mylabel>[^{}]*)(?=\})",
string str="{mylabel type=\"title\"/}{mylabel type=\"articleList\" wordlength=\"30\" articleTypeId=\"20\"/}";
System.Text.RegularExpressions.Regex reg=new System.Text.RegularExpressions.Regex(@"\{mylabel\s+type=""(?<type>[^""\{\}]\w+)""(\s+wordlength=""(?<wordlength>[^""\{\}]\d+)""\s+articleTypeId=""(?<articleTypeId>[^""\{\}]\d+)"")?/\}",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["type"].ToString()+"<br>");
}
在这句后面可不可以这样获取这些值:
m[i].Groups["wordlength"]
m[i].Groups["articleTypeId"]