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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM