更多追问追答

追问

只想用正则表达式,想一步到位

追答

用正则表达式比上面的方法麻烦,并且运行速度慢,你要非用正则表达式,不知下面这样的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 正则 第一个出现的字符_如何用正则表达式通过第一个出现的字符进行拆分?...相关推荐

  1. java 正则匹配括号是否成对_十分钟学会正则表达式

    正则表达式用处挺广的,主要用于处理字符串. 正则引擎 想要在计算机语言中使用正则表达式,那么这门计算机语言必须要利用正则引擎去实现相应的正则库.主要的正则引擎分为以下两类: DFA 确定性的状态机.不 ...

  2. python找出只出现一次的字符_在一个字符串中找到第一个只出现一次的字符。

    题目: 在一个字符串中找到第一个只出现一次的字符.如输入 abaccdeff,则输出 b. 分析: 一个字符串存储的都是ASCII字符,其ASCII范围不超过255. 因此可以再创建一个255个元素的 ...

  3. java正则匹配多个斜杠_正则表达式以匹配JAVA中的两个斜杠

    小编典典 您要匹配的"字符"为: "[/\\\\]" 先为字符串复制反斜杠,然后再为正则表达式复制. 当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可 ...

  4. java正则匹配多个斜杠_正则表达式中两个反斜杠的匹配规则详解

    关于正则表达式raw的\匹配规则 这是我在学习中获得到的一个例子,第一表达式中匹配到的是none.于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是n ...

  5. java 正则提取邮箱_如何用正则表达式提取一个网站里面的所有邮箱地址?

    展开全部 用正则表达式提取一个网站里面的所有邮箱地址e68a8462616964757a686964616f31333337616565 import java.io.BufferedReader; ...

  6. java 正则表达式使用_如何用正则表达式杀死Java

    java 正则表达式使用 我们最近偶然发现了一个我们绝对不了解的现象:您可以使用简单的正则表达式杀死任何Java IDE以及任何Java进程- 回到大学后,我被告知正则表达式(称为正则语法或3型语法) ...

  7. char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...

    今天和大家分享一个简单又好玩的Python项目–"图片转字符画".废话不多说,先上一个效果图迷惑一下众生. 没错的,图片转字符画就是将我们平常所看到的的图片根据像素RGB值和灰度值 ...

  8. python中指定最后一个字符_如何从Python字符串中删除最后一个字符?

    如何从Python字符串中删除最后一个字符? Python支持负索引切片和正切片.负索引从  -1 到-(iterable_length)开始.我们将使用负切片从可迭代对象的末尾获取元素. 索引  - ...

  9. python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

最新文章

  1. jenkins打完包在哪里
  2. 使用maven运行单元測试总结
  3. jovi智慧场景运动步怎么是零_Jovi智慧场景,赛事直播提前提醒,让你不错过任何一刻的精彩...
  4. 权限设计中的数据灵活存储设计策略参考[以不变应万变]
  5. Node.js 文件系统流pipe到Http响应流中
  6. 错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务 【解决办法】...
  7. pandas打开csv表格表头错位问题解决
  8. 计算机主机一闪一闪的无法启动,电脑启动不了灯一闪一闪的
  9. 贺利坚老师汇编课程35笔记:[BX+SI]和[BX+DI]寻址
  10. hdu1176免费馅饼
  11. eclipse中文乱码解决_Stata15:一次性转码,解决中文乱码问题
  12. c#实现txt转化为excel
  13. 2017年11月19日实验感想
  14. 在matlab编辑大于号,教你怎么用MathType编辑大于或小于符号
  15. android qq 功能,Android-类qq功能(一)
  16. C++-OpenCV(1)-连通区域
  17. IP数据报首部的格式:关于标识(identification)、标志(flag)和片偏移
  18. 主题: 逆向英语学习方法
  19. unity 模拟水下场景 水下冒泡
  20. chrome扩展程序安装_如何从Chrome网上应用店外部安装扩展程序

热门文章

  1. android camera工程师,Android从Camera中获取图片的两种方法
  2. django实现web分页的三种方法
  3. Docker-创建和分享应用(3)
  4. ubutn下安装英伟达显卡驱动
  5. 单编译framework相关模块
  6. Silverlight动画基础三:动画与向量-模拟重力效果
  7. 终于过了。。。。。。。。。。。
  8. (79)FPGA版本如何管理?
  9. (24)System Verilog多个线程间通信(信箱)
  10. (07)Verilog HDL组合逻辑:assign