读书人

正则表达式如何写

发布时间: 2012-09-04 14:19:30 作者: rapoo

正则表达式怎么写!

HTML code
 <div class="game_introduce">       <div class="info bg_bor">        <strong>阿萨德:</strong>    <div class="howto">            <ul>         <li><span class="i_mouseleft">mouseleft</span>阿萨德</li>  </ul>         </div>          <p>发生的</p></div>     

我要得到里面的中文跟span里面的数据 我该怎么写正则

[解决办法]
中文: [\u4e00-\u9fa5]+

span数据: (?i)(?<=<span[^>]*?>)[^<>]+(?=</span>)
[解决办法]
C# code
            StreamReader reader = new StreamReader("c:\\1.txt",Encoding.Default);            string source = reader.ReadToEnd();            Regex reg = new Regex(@"(?is)([\u4e00-\u9fa5]+)|((?<=<span[^>]*?>).*?(?=</span>))");            MatchCollection mc = reg.Matches(source);            foreach (Match m in mc)            {                MessageBox.Show(m.Value);            }
[解决办法]
C# code
string html = @" <div class=""game_introduce"">       <div class=""info bg_bor"">        <strong>阿萨德:</strong>    <div class=""howto"">            <ul>         <li><span class=""i_mouseleft"">mouseleft</span>阿萨德</li>  </ul>         </div>          <p>发生的</p></div>     ";            foreach (var r in Regex.Matches(html, @"(?<=<span.*?\>)(.*?)(?=\</\s*?span\s*?\>)(.*?)\<\/li\>").Cast<Match>()) {                string spanval = r.Groups[1].Value;                string 中文 = r.Groups[2].Value;            }
[解决办法]
(?i)(?<=<span\sclass="game_introduce"[^>]*?>)[^<>]+(?=</span>)
[解决办法]
StreamReader reader = new StreamReader("c:\\1.txt",Encoding.Default);
string source = reader.ReadToEnd();
Regex reg = new Regex(@"(?is)([\u4e00-\u9fa5]+)|((?<=<span[^>]*?>).*?(?=</span>))");
MatchCollection mc = reg.Matches(source);
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
}
[解决办法]
你可以匹配表达式,用协议就可以得到值,但不科学。
[解决办法]
string html = @"
<div class=""game_introduce"">
<div class=""info bg_bor"">
<strong>阿萨德:</strong>
<div class=""howto"">
<ul>
<li><span class=""i_mouseleft"">mouseleft</span>阿萨德</li> </ul>
</div>
<p>发生的</p>
</div>
";
foreach (var r in Regex.Matches(html, @"(?<=<span\s*class\=""i_mouseleft""\s*\>)(.*?)(?=\</\s*?span\s*?\>).*?([^\>]*?)\<\/li\>").Cast<Match>())
{
string spanval = r.Groups[1].Value;
string 中文 = r.Groups[2].Value;
}
------解决方案--------------------


(?is)<div\s*[^>]*?class="game_introduce"[^>]*?>.*<span\s*[^>]*?>([^<>]+?)(?=</span>)

读书人网 >asp.net

热点推荐