<li>
<div class="div_1">11</div>
。。
</li>我想要提取 <li>和</li>之间的东西。我使用如下的代码,结果不能成功,请高手指点。 string sAll = "<li><div>..asfsadf</div></li><li>safsaf</li>
string sRegex = "<li>(.*?)</li>";
Regex reg = new Regex(sRegex);
MatchCollection mc = reg.Matches(sAll);
foreach( Match m in mc)
{
}
<div class="div_1">11</div>
。。
</li>我想要提取 <li>和</li>之间的东西。我使用如下的代码,结果不能成功,请高手指点。 string sAll = "<li><div>..asfsadf</div></li><li>safsaf</li>
string sRegex = "<li>(.*?)</li>";
Regex reg = new Regex(sRegex);
MatchCollection mc = reg.Matches(sAll);
foreach( Match m in mc)
{
}
解决方案 »
- c#实现神经网络分类AForge网络的保存和复用
- asp.net 2.0首页因为查询数据库显示较慢,怎样在读取过程中显示“请稍侯。。。”
- 如何在c#界面里导入矢量图啊
- 怎么判断一个button是否被调用
- C#combobox selectedvalue无法获取值
- tabControl控件 DrawMode=OwnerDrawFixed 用户自己绘制 问题
- 怎么样将textbox里面的text传入对象数组中?
- 系统允许几天就会出现这样的问题,“未将对象引用设置到对象的实例。”
- 流程执行到 } 后,有些什么new出来的实例变量被销毁了的啊?(那个什么CG.Coll???什么的是作什么用啊?)
- DOTNET逆向工程转UML图的问题
- c#结构体地址问题!
- 更新程序怎么将update.exe程序整合到main.exe主程序?更新的时候不单独开一个程序,直接在Main更新。
Regex reg = new Regex(@"<li>([\s\S]*?)</li>");
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace sxLdfang
{
class Program
{
static void Main(string[] args)
{
string html = @"<li><div>..asfsadf</div></li>
<li>safsaf</li>";
string pattern = @"(?is)(?<=<li>).*?(?=</li>)";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
Console.ReadKey();
}
}
}
运行结果:
<div>..asfsadf</div>
safsaf
<div>..asfsadf</div>
</li>
<li><li>safsaf</li>";
string pattern = @"<li>(?:(?!</?li>)[\s\S])*</li>";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
Console.ReadKey();结果就是:
<div>..asfsadf</div>
safsaf有这样不合法的标签,也一样可以获取数据
<li><li>safsaf</li>
string pattern = @"<li>(?:(?!</?li>)[\s\S])*</li>";
这个看不懂,能否解释一下?
我以前也经常弄正则的,可是这个实在看不懂
<li><div>..asfsadf</div></li>
<li>safsaf</li>
并没有去掉两边的<li>。风云的程序运行结果是正确的!
但是
string pattern = @"(?is)(?<=<li>).*?(?=</li>)";
我看不懂,谁能解释一下?
也是OK的!
(?<=exp)匹配前面是exp
(?=exp)匹配后面是exp
(?:(?!</?li>)[\s\S])*匹配不是</?li的任意其他数。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace sxLdfang
{
class Program
{
static void Main(string[] args)
{
string html = @"<li><div>..asfsadf</div></li>
<li>safsaf</li>";
string pattern = "<li>(.*?)</li>";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[1].Value);
}
Console.ReadKey();
}
}
}
.NET正则基础之——.NET正则匹配模式
正则基础之——环视