读书人

java正则表达式获得html标签内的内容

发布时间: 2013-09-10 13:42:18 作者: rapoo

java正则表达式取得html标签内的内容


<div id="text-chinese" style="display:none;">

<p>

<span id="chinese-1">对不起!</span>

</p>

<p>

<span id="chinese-2">什么事?</span>

</p>

<p>

<span id="chinese-3">这是您的手提包吗?</span>

</p>

<p>

<span id="chinese-4">对不起,请再说一遍。</span>

</p>

<p>

<span id="chinese-5">这是您的手提包吗?</span>


</p>

<p>

<span id="chinese-6">是的,它是。</span>

</p>

<p>

<span id="chinese-7">非常感谢你。</span>

</p>

</div>


从从其中标签中取得中文,正则表达式该怎么写呢?
[解决办法]
新建一个1.txt

<div id="text-chinese" style="display:none;">

<p>

<span id="chinese-1">对不起!</span>

</p>

<p>


<span id="chinese-2">什么事?</span>

</p>

<p>

<span id="chinese-3">这是您的手提包吗?</span>

</p>

<p>

<span id="chinese-4">对不起,请再说一遍。</span>

</p>

<p>

<span id="chinese-5">这是您的手提包吗?</span>

</p>

<p>

<span id="chinese-6">是的,它是。</span>

</p>

<p>


<span id="chinese-7">非常感谢你。</span>

</p>

</div>



string sourcestr = File.ReadAllText(@"C:\1.txt", Encoding.GetEncoding("GB2312"));
string patternstr = @"(?is)<p>\s*<span\s*id=""[^""]*"">(.*?)</span>\s*</p>";
Regex regx = new Regex(patternstr);
List<string> urllist = new List<string>();
MatchCollection mcurl = regx.Matches(sourcestr);
foreach (Match sk in mcurl)
{
urllist.Add(sk.Groups[1].Value);//结果在urllist中
}

[解决办法]
引用:
新建一个1.txt
HTML code

<div id="text-chinese" style="display:none;">

<p>

<span id="chinese-1">对不起!</span>

</p>
……

擦,java啊,正则差不多就这个(?is)<p>\s*<span\s*id="[^"]*">(.*?)</span>\s*</p>
自己试试
[解决办法]

(?<=<span\b[^>]*?>)[^<>]+(?=</span>)

结果:



对不起!
什么事?
这是您的手提包吗?
对不起,请再说一遍。
这是您的手提包吗?
是的,它是。
非常感谢你。

读书人网 >asp.net

热点推荐