读书人

继续追问正则表达式的有关问题

发布时间: 2012-09-01 09:33:03 作者: rapoo

继续追问正则表达式的问题
"\r\n\t\t<p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">hello world</span>\r\n </p>\r\n <p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">Hello</span>\r\n </p>\r\n <p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">hellO 8</span>\r\n </p>"

想用正则表达式匹配出第一<p></p>
也就是:<p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">hello world</span>\r\n </p>

写了如下代码:
Regex r1 = new Regex(@"(<p.*>)", RegexOptions.Multiline);
但是结果为空。

请大侠指导。谢谢

[解决办法]

[解决办法]
<p[^>]*>.*?</p>
[解决办法]
string str = "\r\n\t\t<p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">hello world</span>\r\n </p>\r\n <p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">Hello</span>\r\n </p>\r\n <p>\r\n <span style=\"BACKGROUND-COLOR: #cce8cf\">hellO 8</span>\r\n </p>";
Regex reg = new Regex(@"(?is)<p[^>]*>(.*?)</p>");

Match match = reg.Match(str);
Console.Write(match.Value);
[解决办法]
<p>
<span style="BACKGROUND-COLOR: #cce8cf">hello world</span>
</p>
[解决办法]
string temp = @"\r\n\t\t<p>\r\n <span style=""BACKGROUND-COLOR: #cce8cf"">hello world</span>\r\n </p>\r\n <p>\r\n <span style=""BACKGROUND-COLOR: #cce8cf"">Hello</span>\r\n </p>\r\n <p>\r\n <span style=""BACKGROUND-COLOR: #cce8cf"">hellO 8</span>\r\n </p>";
Console.WriteLine(Regex.Match(temp,"(?s)(?<=<p>)(.*?)(?=</p>)"));

读书人网 >asp.net

热点推荐