导航:首页 > 编程语言 > java正则匹配中括号内容

java正则匹配中括号内容

发布时间:2021-02-26 22:56:45

java,怎样用正则表达式去掉方括号[ ]内的内容。如将"[a;b]haha;[c;d]hihi"变为“haha;hihi”。

^String str = "[a;b]haha;[c;d]hihi";
// 三部分:[\\[]:开头; [^\\[\\]]+:非[]; [\\]]结尾回
System.out.println(str.replaceAll("[\\[][^\\[\\]]+[\\]]", ""));

结果答正确

② java正则获取中括号的内容

你的这个a是数组,应该是string[] 类型的,直接a[2]就可以取出了,假设是string类型的啊,可以用subString(int start,int end)取值

③ 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;i<arr.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语言的专例子,你看看吧属

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

publicclassAA{

publicstaticvoidmain(String[]args){

Stringstr="1....水电费第三方第三方第三方【222】【3333】 展示的是 【222】 【3333】";

Stringregex="【.*?】";

Patternp=Pattern.compile(regex);

Matcherm=p.matcher(str);

while(m.find()){

System.out.println(m.group());

}

}

}

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

find()方法是部分匹配,是查找输入串中与模式匹配的子串。
matches()是全部匹配内,是将整个输入串容与模式匹配,因此只有整个字符串都符合正则表达式才会返回true
System.out.println(Pattern.matches("\\[.+?\\]", "[呵呵]"));

⑥ 正则匹配两个方括号之间的内容,包括方括号本身

要匹配字符串[] ..... [/]的所有内容(包括两个方括号),
应该用正则表达式:/\[\][\s\S]*?\[\/\]/i
取第内0捕获组的数据,就是字符串容[] ..... [/]的所有内容

你的正则表达式/\[\]([\s\S]*)\[\/\]/Ui如果有两个[/],它就会匹配最长的字符串(贪婪匹配),比如字符串:[] ..... [/][] ..... [/]
它一次会匹配全部字符串(贪婪匹配),而不是匹配第一和第二个[] ..... [/](非贪婪匹配)
另外,/\[\]([\s\S]*)\[\/\]/Ui加小括号会捕获[] ..... [/]中间的 .....
而你要匹配所有内容(包括两个方括号),所以应该去掉小括号,取第0捕获组的数据。

⑦ java正则表达式匹配小括号内的内容

String str = "(aa){(dd)cbdsagchgkhdbvljck(ff)}";
Pattern pattern = Pattern.compile("(?<=\\()[^\\)]+");

Matcher matcher = pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}

⑧ JAVA正则表达式获取大括号什么内容

代码如下:

import java.util.ArrayList;


import java.util.List;


import java.util.regex.Matcher;


import java.util.regex.Pattern;

public class Test {

public static void main(String[] args) throws Exception {


String test = "{databaseIp}:{databasePort}{instanceName};database";


List<String> ls=new ArrayList<String>();


Pattern pattern = Pattern.compile("(?<=\{)(.+?)(?=\})");


Matcher matcher = pattern.matcher(test);


while(matcher.find()){


ls.add(matcher.group());


}


for (String string : ls) {


System.out.println(string);


}


}

⑨ 正则表达式怎么匹配中括号里面的内容

varpattern=/(([^)]+))/;//匹配结果取分组1

更多正则资料请参考我的博客:《我眼里的正则表达式(专入属门》

链接:http://www.zjmainstay.cn/my-regexp

⑩ 正则表达式 匹配最后一个中括号内容

我试了半天,只能将逐个括号中的内容进行匹配,正则表达式如下:(?!\[)([^\[\]]*)(?=\])
如果回你代码中用答javascript来实现对匹配内容进行操作的话,可以使用/(?!\[)([^\[\]]*)(?=\])/g来解决最后一个括号匹配的问题。
我用javascript做的测试:(弹出最后一个括号中的内容)
<script>
changeStr();
function changeStr()
{
var str = "[tt.aa].[bbb].[ccc]";
var reg = /(?!\[)([^\[\]]*)(?=\])/g;
var arr = str.match(reg);
alert(arr[arr.length-2]);//最后一次匹配的是空串,倒数第二次才是我们想要的结果
}
</script>
希望能够帮到你

阅读全文

与java正则匹配中括号内容相关的资料

热点内容
学生用什么编程 浏览:27
苹果怎么看缓存的文件在哪里 浏览:785
用光盘引导linux系统安装教程 浏览:956
ps如何将元素复制到另外一个文件 浏览:651
win10删除文件怎么用管理员权限 浏览:941
qq监控文件删除 浏览:58
java设置下载文件的名字 浏览:48
iphone6屏幕出现平行竖条纹 浏览:741
教育大数据应用典型示范项目 浏览:934
有什么好的消化内科科普网站 浏览:504
打开网络映射存储为什么特别慢 浏览:157
苹果手机摔弯了还能修吗 浏览:532
华中数控编程怎么换 浏览:874
word2007画图工具在哪里 浏览:565
广播式网络由什么组成 浏览:538
福州老用户升级4g校园套餐 浏览:644
jstr加点击事件 浏览:652
搜狗输入法最老版本下载地址 浏览:145
玛卡编程怎么样 浏览:302
怎么编程伺服器编码 浏览:109

友情链接