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

[[company_name]].[[first_name]][[last_name]][[address]],[[city]],[[county]],[[state]]... [[company_name]].
[[first_name]] [[last_name]]
[[address]], [[city]],
[[county]], [[state]], [[zip]]
([[email]])
Welcome, [[first_name]] [[last_name]], to our party.

求问大佬这个如何提取出每一个[ [ ] ]和[[] []]中的内容。谢谢!
展开
 我来答
梦之彼岸花未开
游戏玩家

2019-10-07 · 非著名电竞玩家
知道小有建树答主
回答量:207
采纳率:80%
帮助的人:60.2万
展开全部
一定要用正则吗,如果不用正则的话,可以讲所有的中括号用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);
}
}
}
}
更多追问追答
追答

输出如图
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式