Java正则表达式获取中括号之间的内容
参考:
求一个正则表达式提取中括号里的内容 [问题点数:80分]CSDN论坛 > Java > Web 开发
正则表达式 - 菜鸟教程
不包含中括号
正则表达式如下:
\\[(.*?)]
注:
.
匹配除换行符\n
之外的任何单字符;
*
匹配前面的子表达式零次或多次;
?
匹配前面的子表达式零次或一次;
()
标记一个子表达式的开始和结束位置;
\[
匹配[
字符。[
是特殊字符需要转义;
\
特殊字符,前面还需要转义字符\
。
包含中括号
(\\[(.*?)])
外加小括号,表示[]
也在匹配结果之内。
代码(不包含中括号)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpression {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String input = sc.nextLine();
String regex = "\\[(.*?)]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
sc.close();
}
}
样例
ab]cd[ef]gh[ij[kl]mn[op]qr]st[uv
ef
ij[kl
op
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步