环境:VS2005 C#字符串:
...
...<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV></SPAN></FONT></DIV>如上示例,字符串仅由两种元素构成,一个是html标签,另一个就是" " 请问能不能根据这一思路,或者是其它方法,来写一个正则表达式以匹配上面的字符串?
...
...<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV></SPAN></FONT></DIV>如上示例,字符串仅由两种元素构成,一个是html标签,另一个就是" " 请问能不能根据这一思路,或者是其它方法,来写一个正则表达式以匹配上面的字符串?
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV> </SPAN> </FONT> </DIV>
";
if(Regex.Match(Regex.Replace(str,@"<[^>*]>",""),@" \s*").Success)
Console.WriteLine("ok");
}
输出ok就是匹配成了
分别是@"<[^>*]>"
和 @" \s*"可以在写一个正则
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV> </SPAN> </FONT> </DIV>
";
Regex re = new Regex(@"^(<[^>]*>| \s*|\s*)*$");
Console.WriteLine(re.Match(str).Value);
\s*|\s*为什么要连续用两个呢?
Regex reg = new Regex(@"(<[^<>]+?>\s*| \s*)+$");经测试作用良好,嘻嘻,感谢LCL_data,谢谢大家!