「java正则匹配嵌套括号」java 匹配成对括号

博主:adminadmin 2022-12-18 19:12:09 68

今天给各位分享java正则匹配嵌套括号的知识,其中也会对java 匹配成对括号进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中如何用正则表达提取中括号嵌套中括号中的内容?

一定要用正则吗,如果不用正则的话,可以讲所有的中括号用replace()方法替换掉,然后用spilt()方法,以逗号隔开,得到的字符串数组就是你要的内容。

如果用正则的话,代码如下

import java.util.regex.*;

public class RegDemo

{

public static void main(String args[]){

String reg="\\[+([a-z]{1,}|_)+[a-z]{1,}+\\]";

//只用reg2可以匹配两个括号的内容

//String reg2="\\[\\[+([a-z]{1,}|_)+[a-z]{1,}+\\]\\]"

//这里的content就是要用来匹配的数据

String content="[world],[hello],[[hello_world]]";

//以逗号分隔

String arr[]=content.split(",");

for(int i=0;iarr.length;i++){

Pattern pattern=Pattern.compile(reg);

Matcher matcher=pattern.matcher(arr[i]);

if(matcher.find()){

//得到第一次循环的内容,判断里面还有中括号没有

String target1=matcher.group();

if(target1.contains("[")){

//把所有的方括号替换掉,就得到想要的数据了

target1=target1.replace("[","");

target1=target1.replace("]","");

}

System.out.println(target1);

}

}

}

}

java正则表达式 括号嵌套

按照你的要求编写的Java程序如下:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class FF {

 public static String[] process(String type, String expression){

  String regex=type+"

\\(([^()]+|\\(([^()]+)*\\))*\\

)";

  Pattern p=Pattern.compile(regex);

  Matcher m=p.matcher(expression);

  int i=0;

  while(m.find()){

   i++;

  }

  String[]s=new String[i];

  i=0;

  m.reset();

  while(m.find()){

   s[i]=m.group();

   i++;

  }

  return s;

 }

 public static String print(String[] s){

  String str="";

  str+="{";

  for(int i=0;is.length;i++){

   if(i==s.length-1){

    str+=s[i]+"}";

   }else{

    str+=s[i]+",";

   }

  }

  return str;

 }

 public static void main(String[] args) {

  String expression = "if(sum(1,2),0,avg(1,2)) +1 + if(1,2)";

  System.out.println(print(process("if", expression)));

  System.out.println(print(process("avg", expression)));

 }

}

运行结果:

{if(sum(1,2),0,avg(1,2)),if(1,2)}

{avg(1,2)}

Java中如何使用正则匹配一对中括号中的引号冒号(":),目的是在冒号后加个空格?

我觉得楼上那位说把中括号里的取出来处理了再弄回去可行啊,把原字符串一分为三,把中间处理了再组合起来,但是我写的这个很low只能处理一次中括号:

运行结果:

再说了,json对于冒号后面有无空格根本就无所谓,为什么你们要要求冒号后面有空格?感觉就是没事找事,以阿里巴巴的fastjson为例,他们转出来json字符串冒号后面就没有空格:

请问正则表达式匹配括号的问题

在正则表达式中()表示一个分组,()属于正则表达式的特殊字符,是具有实际意义的,所以要匹配括号必须要加上 反斜杠 \( 来说明这表示的是一个普通的小括号,而不是一个正则分组

用java正则表达式匹配方括号问题

find()方法是部分匹配,是查找输入串中与模式匹配的子串。

matches()是全部匹配,是将整个输入串与模式匹配,因此只有整个字符串都符合正则表达式才会返回true

System.out.println(Pattern.matches("\\[.+?\\]", "[呵呵]"));

java正则匹配嵌套括号的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 匹配成对括号、java正则匹配嵌套括号的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-18,除非注明,否则均为首码项目网原创文章,转载请注明出处。