「java正则匹配嵌套括号」java 匹配成对括号
今天给各位分享java正则匹配嵌套括号的知识,其中也会对java 匹配成对括号进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java中如何用正则表达提取中括号嵌套中括号中的内容?
- 2、java正则表达式 括号嵌套
- 3、Java中如何使用正则匹配一对中括号中的引号冒号(":),目的是在冒号后加个空格?
- 4、请问正则表达式匹配括号的问题
- 5、用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正则匹配嵌套括号的信息别忘了在本站进行查找喔。
发布于:2022-12-18,除非注明,否则均为
原创文章,转载请注明出处。