java正则匹配公司名称_Java应⽤正则表达式获取⽂本的章节
正则表达式提取中文名称
获取⽂本的章节,起⾸要断定则节的开端标准,⼀般中⽂的章节都是以“第”开⾸,第⼀章、第⼆章等。所以应⽤“^”字符来断定⾸位,然则很多时⾠章节前⾯会有空⽩字符,所有以“第”作为章节的开端,进⾏以下的匹配
^\\s第
“\s”默⽰空⽩字符,加上“”默⽰0到多个空⽩字符,“^”默⽰是以空⽩字符加上“第作为开端的”。若是须要匹配的字符串不是在段落的开端,把“^”去掉即可。
章节的序号格局不同⼀,有可能是阿拉伯数字,也有可能是中⽂,长度⼀般不会跨越9位,所以以随便率性字符来匹配
.{1,9}
“.”默⽰随便率性字符,“{1,9}”默⽰长度最⼩1次,最⼤9次。
章节序号后⾯是润饰
[章节卷集部篇回]
“[]” 默⽰⾥⾯的字符有⼀个呈现了,“[]”匹配单字符,相当于 “章”或“节”或“卷”或“集”或“部”或“篇”或“回” 呈现了。
在题今朝⾯⼀般有空⽩字符,也有可能没有所以添加空⽩字符的匹配
\\s
章节题⽬可所以随便率性字符,随便率性字符是“.”,0到多个随便率性字符就是
.
⼀般章节过后就是换⾏,所以最后要有换⾏的匹配
\n|\r|\r\n
将上⽅的所有正则组合成⼀个就是
(^\\s第)(.{1,9})[章节卷集部篇回](\\s)(.)(\n|\r|\r\n)
这个正则表达式中⼀个有个6个group,全部表达式是第⼀个group,每个“()”⾥⾯的就是⼀个group,[章节卷集部篇回]是⼀个group,完成了正则表达式,我们就可以⽤Java获取段落的章节题⽬了。
public classTestRegex {/@paramargs/
public static voidmain(String[] args) {
String testString= 第⼀回 风雪惊变\r\n 钱塘江浩浩江⽔,⽇⽇夜夜⽆穷⽆休的从临安⽜家村边绕过,东流⼊海。;
Pattern p= Patternpile((^\\s第)(.{1,9})[章节卷集部篇回](\\s)(.)(\n|\r|\r\n));
Matcher matcher=p.matcher(testString);while(matcher.find()) {for (int i = 0; i <= upCount(); i++) {
System.out.println(group + i + : + matcher.start(i) + - +d(i));
System.out.up(i));
}
}
}
}
输出成果:
group0 : 0 - 9
第⼀回 风雪惊变
group1 : 0 - 1
第
group2 : 1 - 2
⼀
group3 : 3 - 4
group4 : 4 - 8
风雪惊变
group5 : 8 - 9
我所有的⾃负皆来⾃我的⾃卑,所有的英雄⽓概都来⾃于我的软弱。嘴⾥振振有词是因为⼼⾥满是怀疑,深情是因为痛恨⾃⼰⽆情。这世界没有⼀件事情是虚空⽽⽣的,站在光⾥,背后就会有阴影,这深夜⾥⼀⽚寂静,是因为你还没有听见声⾳。—— 马良《坦⽩书》
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论