java正则表达式匹配斜杠,正则表达式匹配数字和横线

  java正则表达式匹配斜杠,正则表达式匹配数字和横线

  爪哇中正则表达式如何匹配竖线() , 以及在科特林中是如何改进的?_禅与计算机程序设计艺术的技术博客_博客

  爪哇中正则表达式如何匹配竖线()

  在爪哇中直接调用线的使分离方法:

  val b=java.lang.String(a)

  val s3=b.split() //[a , b , c , , 1 , 2 , 3 , 4]

  println(JSON.toJSONString(s3))因为在正则表达式中是或的概念,要想匹配就得用转移字符 但是 又是爪哇岛的转移字符,要让其在正则中起作用,就得使用: \

  val b=java.lang.String(a)

  val s3=b.split( )

  println(JSON。tojsonstring(S3))//[ a , b , c , , 1 , 2 , 3 , 4]

  val s4=b.split(\\ )

  println(JSON。tojsonstring(S4))//[ ABC , 1234]这个爪哇中的使分离方法设计简直就是一个天坑(天然的坑): 如果不看实现代码,很容易犯错。

  public String[]split(String regex){

  返回split(regex,0);

  }

  public String[]split(String regex,int limit) {

  /*快速路径如果正则表达式是

  (1)单字符字符串,并且该字符不是

  正则表达式的元字符。$()[{^?* \ ,或者

  (2)双字符字符串,第一个字符是反斜杠和

  第二个不是美国信息交换标准码数字或美国信息交换标准码字母。

  */

  char ch=0;

  if (((regex.value.length==1。$()[{^?* \.的索引(ch=regex。charat(0))==-1)

  (regex.length()==2

  regex.charAt(0)==\\

  ((((ch=regex。charat(1))- 0 )( 9 -ch))0

  ((ch-a)(z-ch)) 0

  ((ch-A)(Z-ch)) 0))

  (ch字符MIN_HIGH_SURROGATE

  荣誉勋爵字符MAX_LOW_SURROGATE))

  {

  int off=0;

  int next=0;

  布尔限制=限制

  ArrayList String list=new ArrayList();

  while ((next=indexOf(ch,off))!=-1) {

  如果(!limited list.size() limit - 1) {

  list.add(substring(off,next));

  关闭=下一个1;

  } else { //最后一个

  //断言(列表。size()==limit-1);

  list.add(子字符串(off,value。长度));

  off=值.长度

  打破;

  }

  }

  //如果没有找到匹配,则返回

  if (off==0)

  返回新字符串[]{ this };

  //添加剩余段

  如果(!限制 list.size()限制)

  list.add(子字符串(off,value。长度));

  //构造结果

  int resultSize=list。size();

  if (limit==0) {

  while(resultSize 0列表。获取(结果大小-1).length()==0) {

  resultSize-;

  }

  }

  字符串[]结果=新字符串[resultSize];

  返回list.subList(0,resultSize).toArray(结果);

  }

  返回模式.编译(正则表达式).分裂(这个,极限);

  }在科特林中,直接优化了这个使分离方法:

  val a=abc1234

  val s1=a.split( )

  val s2=a.split(\\ )

  println(s1) //[abc,1234]

  println(s2) //[abc1234]Kotlin开发者社区国内第一科特林开发者社区公众号,主要分享、交流科特林编程语言、春天的Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。

  科特林开发者社区

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: