如何用正则表达式通过第一个出现的字符进行拆分?

C#.NET,比如正则表达式"[\u7BC7]+",匹配所有含“篇”的字符串,vararray=Regex.Split("第一篇第二篇第三篇第四篇","[\u7BC7]+... C#.NET,比如正则表达式"[\u7BC7]+",匹配所有含“篇”的字符串,var array=Regex.Split("第一篇第二篇第三篇第四篇", "[\u7BC7]+"),拆分出来的array数组有四组,其实我只想要第一个“篇”拆分出来要两组,如何实现? 展开
 我来答
紫薇参星
科技发烧友

2016-06-22 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3597万
展开全部

在C#中用string类的indexOf和substring函数就可以实现你的要求。

我给你个Java程序的例子,你看看吧。

public class KK {
 public static void main(String[] args) {
  String s="第一篇第二篇第三篇第四篇";
  String regex="\u7BC7";
  String s1=s.substring(0,s.indexOf(regex)+1);
  String s2=s.substring(s.indexOf(regex)+1);
  System.out.println(s1);
  System.out.println(s2);
 }
}

运行结果:

第一篇
第二篇第三篇第四篇

更多追问追答
追问
只想用正则表达式,想一步到位
追答

用正则表达式比上面的方法麻烦,并且运行速度慢,你要非用正则表达式,不知下面这样的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<str.length;i++)
   s2=s2+str[i]+"\u7BC7";
  System.out.println(s1);
  System.out.println(s2);
 }
}

运行结果:

第一篇
第二篇第三篇第四篇

吾以念之真
2017-12-22
知道答主
回答量:1
采纳率:0%
帮助的人:920
展开全部
function split_first(stra,strb){
    let temptel =stra;
    let reg0 = new RegExp("([^"+strb+"]+)"+strb+".*");
    let str1 = temptel.replace(reg0, "$1");
    let reg1 = new RegExp(str1+strb+"(\\S*)");
    let str2 = temptel.match(reg1)[1];
return [str1,str2]
}

js写的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式