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
posted @ 2019-08-15 15:49  wowpH  阅读(25521)  评论(1编辑  收藏  举报