java 正则 第一个出现的字符_如何用正则表达式通过第一个出现的字符进行拆分?...
更多追问追答
追问
只想用正则表达式,想一步到位
追答
用正则表达式比上面的方法麻烦,并且运行速度慢,你要非用正则表达式,不知下面这样的Java程序得到的结果,行不行。public class KK {
public static void main(String[] args) {
String s="第一篇第二篇第三篇第四篇";
String regex="[\u7BC7]+";
String[]str=s.split(regex);
String s1=str[0]+"\u7BC7";
String s2="";
for(int i=1;i
s2=s2+str[i]+"\u7BC7";
System.out.println(s1);
System.out.println(s2);
}
}
运行结果:
第一篇
第二篇第三篇第四篇
追问
我换成(^.*?\u7BC7)就很接近了,只想用正则表达式,不要搞什么常规拆分了。
追答
这样我看应该行了。import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KK {
public static void main(String[] args) {
String s="第一篇第二篇第三篇第四篇";
String regex=".+?[\u7BC7]+";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
String s1="";
String s2="";
int count=0;
while(m.find()){
if(count==0){
s1=m.group();
count++;
}else{
s2=s2+m.group();
count++;
}
}
System.out.println(s1);
System.out.println(s2);
}
}
运行结果:
第一篇
第二篇第三篇第四篇
追问
不妥啊,大哥,你这种花太多代码来写了,\u7BC7(?!.*\u7BC7)已经很接近了,是匹配最后一个“篇”的,有没有办法匹配第一个“篇”?
追答
你匹配了第一个"篇"怎么匹配后面的字符串呢,象你说的可以用"^.*?\u7BC7"来匹配第一个"篇"
后面的怎么办呢,再用另一个正则表达式,再匹配一遍?
追问
我只要匹配第一个“篇”就够了,后面的不匹配了。
追答
用你说的正则表达式:^.*?\u7BC7
就可以匹配第一个"篇".我还是建议你用string的indexOf和substring函数来处理这个问题
完整的Java程序如下:import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KK {
public static void main(String[] args) {
String s="第一篇第二篇第三篇第四篇";
String regex="^.*?\u7BC7";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
}
}
运行结果:
第一篇
追问
我只想匹配第一个“篇”字,而不是“第一篇”,只要一个字,不是三个字。
追答
用正则表达式:^.*?(\u7BC7) 取第一捕获组的数据就是第一个"篇"字
完整的Java程序如下:import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KK {
public static void main(String[] args) {
String s="第一篇第二篇第三篇第四篇";
String regex="^.*?(\u7BC7)";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
}
}
运行结果:
篇
追问
我要一步到位的,var array=Regex.Split("第一篇第二篇第三篇第四篇", "正则表达式"),一句话就能搞定,拆出来的数组array[0]="第一",array[1]=“第二篇第三篇第四篇”,拆出来的array[0]+="篇"就实现拆分成两组的功能,不用写多余的代码。
追答
我想起来了,可以用一个正则表达式分割两个字符串的。
正则表达式:^(.*?\u7BC7)(.*)$
取第一和第二捕获组的数据,就是"第一篇" 和"第二篇第三篇第四篇"
具体的Java语言的例子如下:import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KK {
public static void main(String[] args) {
String s="第一篇第二篇第三篇第四篇";
String regex="^(.*?\u7BC7)(.*)$";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
if(m.matches()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
}
运行结果:
第一篇
第二篇第三篇第四篇
java 正则 第一个出现的字符_如何用正则表达式通过第一个出现的字符进行拆分?...相关推荐
- java 正则匹配括号是否成对_十分钟学会正则表达式
正则表达式用处挺广的,主要用于处理字符串. 正则引擎 想要在计算机语言中使用正则表达式,那么这门计算机语言必须要利用正则引擎去实现相应的正则库.主要的正则引擎分为以下两类: DFA 确定性的状态机.不 ...
- python找出只出现一次的字符_在一个字符串中找到第一个只出现一次的字符。
题目: 在一个字符串中找到第一个只出现一次的字符.如输入 abaccdeff,则输出 b. 分析: 一个字符串存储的都是ASCII字符,其ASCII范围不超过255. 因此可以再创建一个255个元素的 ...
- java正则匹配多个斜杠_正则表达式以匹配JAVA中的两个斜杠
小编典典 您要匹配的"字符"为: "[/\\\\]" 先为字符串复制反斜杠,然后再为正则表达式复制. 当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可 ...
- java正则匹配多个斜杠_正则表达式中两个反斜杠的匹配规则详解
关于正则表达式raw的\匹配规则 这是我在学习中获得到的一个例子,第一表达式中匹配到的是none.于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是n ...
- java 正则提取邮箱_如何用正则表达式提取一个网站里面的所有邮箱地址?
展开全部 用正则表达式提取一个网站里面的所有邮箱地址e68a8462616964757a686964616f31333337616565 import java.io.BufferedReader; ...
- java 正则表达式使用_如何用正则表达式杀死Java
java 正则表达式使用 我们最近偶然发现了一个我们绝对不了解的现象:您可以使用简单的正则表达式杀死任何Java IDE以及任何Java进程- 回到大学后,我被告知正则表达式(称为正则语法或3型语法) ...
- char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...
今天和大家分享一个简单又好玩的Python项目–"图片转字符画".废话不多说,先上一个效果图迷惑一下众生. 没错的,图片转字符画就是将我们平常所看到的的图片根据像素RGB值和灰度值 ...
- python中指定最后一个字符_如何从Python字符串中删除最后一个字符?
如何从Python字符串中删除最后一个字符? Python支持负索引切片和正切片.负索引从 -1 到-(iterable_length)开始.我们将使用负切片从可迭代对象的末尾获取元素. 索引 - ...
- python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?
本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...
最新文章
- jenkins打完包在哪里
- 使用maven运行单元測试总结
- jovi智慧场景运动步怎么是零_Jovi智慧场景,赛事直播提前提醒,让你不错过任何一刻的精彩...
- 权限设计中的数据灵活存储设计策略参考[以不变应万变]
- Node.js 文件系统流pipe到Http响应流中
- 错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务 【解决办法】...
- pandas打开csv表格表头错位问题解决
- 计算机主机一闪一闪的无法启动,电脑启动不了灯一闪一闪的
- 贺利坚老师汇编课程35笔记:[BX+SI]和[BX+DI]寻址
- hdu1176免费馅饼
- eclipse中文乱码解决_Stata15:一次性转码,解决中文乱码问题
- c#实现txt转化为excel
- 2017年11月19日实验感想
- 在matlab编辑大于号,教你怎么用MathType编辑大于或小于符号
- android qq 功能,Android-类qq功能(一)
- C++-OpenCV(1)-连通区域
- IP数据报首部的格式:关于标识(identification)、标志(flag)和片偏移
- 主题: 逆向英语学习方法
- unity 模拟水下场景 水下冒泡
- chrome扩展程序安装_如何从Chrome网上应用店外部安装扩展程序