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

互联互通社区 2012-04-06 01:41:56

<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>

从从其中标签中取得中文,正则表达式该怎么写呢?
...全文
979 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
下一站1899 2014-06-23
  • 打赏
  • 举报
回复
有没有java的代码啊
FritzLoveMinna 2013-09-09
  • 打赏
  • 举报
回复
Pattern p = Pattern.compile("(?<=<span\b[^>]*?>)[^<>]+(?=</span>)"); Matcher matcher= p.matcher("<span>你好</span>"); while(matcher.find()){ system.out.printl( matcher.group() ); }
互联互通社区 2012-04-06
  • 打赏
  • 举报
回复
谢谢各位了,我自己写出来了……
互联互通社区 2012-04-06
  • 打赏
  • 举报
回复
<!DOCTYPE HTML>
<html lang="zh">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="lesson-no">Lesson 1</div>
<div id="lesson-title">Excuse me!</div>
<div id="text-all" class="book1-text">
<div id="text-english">

<p>

<span id="english-1" class="hand-cursor" onmouseout="removeHighlight('english-1','chinese-1');" onclick="highlight('english-1','chinese-1');soundManager.stopAll();soundManager.play('1','../../sound/sentence/book1_1.1.mp3');">Excuse me!</span>

</p>

<p>

<span id="english-2" class="hand-cursor" onmouseout="removeHighlight('english-2','chinese-2');" onclick="highlight('english-2','chinese-2');soundManager.stopAll();soundManager.play('2','../../sound/sentence/book1_1.2.mp3');">Yes?</span>

</p>

<p>

<span id="english-3" class="hand-cursor" onmouseout="removeHighlight('english-3','chinese-3');" onclick="highlight('english-3','chinese-3');soundManager.stopAll();soundManager.play('3','../../sound/sentence/book1_1.3.mp3');">Is this your handbag?</span>

</p>

<p>

<span id="english-4" class="hand-cursor" onmouseout="removeHighlight('english-4','chinese-4');" onclick="highlight('english-4','chinese-4');soundManager.stopAll();soundManager.play('4','../../sound/sentence/book1_1.4.mp3');">Pardon?</span>

</p>

<p>

<span id="english-5" class="hand-cursor" onmouseout="removeHighlight('english-5','chinese-5');" onclick="highlight('english-5','chinese-5');soundManager.stopAll();soundManager.play('5','../../sound/sentence/book1_1.5.mp3');">Is this your handbag?</span>

</p>

<p>

<span id="english-6" class="hand-cursor" onmouseout="removeHighlight('english-6','chinese-6');" onclick="highlight('english-6','chinese-6');soundManager.stopAll();soundManager.play('6','../../sound/sentence/book1_1.6.mp3');">Yes,it is.</span>

</p>

<p>

<span id="english-7" class="hand-cursor" onmouseout="removeHighlight('english-7','chinese-7');" onclick="highlight('english-7','chinese-7');soundManager.stopAll();soundManager.play('7','../../sound/sentence/book1_1.7.mp3');">Thank you very much.</span>

</p>

</div>
<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>

</body>
</html>
不好意思,我是菜鸟,初学正则表达式,希望大家能帮忙写写,最终效果:
Excuse me! 对不起! book1_1.1.mp3
Yes? 什么事? book1_1.2.mp3
Is this your handbag? 这是您的手提包吗? book1_1.3.mp3
Pardon? 对不起,请再说一遍。 book1_1.4.mp3
Is this your handbag? 这是您的手提包吗? book1_1.5.mp3
Yes,it is. 是的,它是。 book1_1.6.mp3
Thank you very much. 非常感谢你。 book1_1.7.mp3
q107770540 2012-04-06
  • 打赏
  • 举报
回复
据我了解,正则在JAVA语言内也是支持环视滴~
EnForGrass 2012-04-06
  • 打赏
  • 举报
回复
我刚查了一下
(?<=expression),expression只支持固定长度的表达式和量词“?”,其它不定长度的量词“*”、“+”、“{m,n}”等等都是不支持的
EnForGrass 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

Java code

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


结果:
Assembly code

对不起!
什么事?
这是您的手提包吗?
对不起,请再说一遍。
这是您的手提包吗?
是的,它是。
非常感谢你。
[/Quote]
督察,java支持环视吗?
q107770540 2012-04-06
  • 打赏
  • 举报
回复

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

结果:

对不起!
什么事?
这是您的手提包吗?
对不起,请再说一遍。
这是您的手提包吗?
是的,它是。
非常感谢你。
互联互通社区 2012-04-06
  • 打赏
  • 举报
回复
你这是用C#写的吧!这个正则表达式在java里不好使啊!
EnForGrass 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

新建一个1.txt
HTML code

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

<p>

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

</p>
……
[/Quote]
擦,java啊,正则差不多就这个(?is)<p>\s*<span\s*id="[^"]*">(.*?)</span>\s*</p>
自己试试
EnForGrass 2012-04-06
  • 打赏
  • 举报
回复
新建一个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中
}
EnForGrass 2012-04-06
  • 打赏
  • 举报
回复
(?is)<p>\s*<span\s*id="[^"]*">(.*?)</span>\s*</p>

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧