我需要從字符串中提取一個(gè)參數(shù)和該參數(shù)的值((created_date{[1976-03-06T23:59:59.999Z TO *]}|1))。這里的參數(shù)是 created_date。值1976-03-06T23:59:59.999Z TO *在哪里*表示沒有限制。我需要提取如下所示的數(shù)據(jù),即它應(yīng)該是一個(gè)字符串?dāng)?shù)組。created_date1976-03-06T23:59:59.999Z*1我已經(jīng)嘗試了一些在線正則表達(dá)式工具來找到合適的正則表達(dá)式,并且還在反復(fù)試驗(yàn)的基礎(chǔ)上嘗試了一些代碼。String str = "((created_date{[1976-03-06T23:59:59.999Z TO *]}|1))";String patt = "\\((.*)\\{(.*)\\}\\|(1|0)\\)";Pattern p = Pattern.compile(patt);Matcher m = p.matcher(str);MatchResult result = m.toMatchResult();System.out.println(result.group(1));similaryresult.group(2)和3.. 取決于result.groupCount().我需要提取如下所示的數(shù)據(jù),即它應(yīng)該是一個(gè)字符串?dāng)?shù)組。created_date1976-03-06T23:59:59.999Z*1
1 回答

冉冉說
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
您可以使用以下內(nèi)容:
String str = "((created_date{[1976-03-06T23:59:59.999Z TO *]}|1))";
String patt = "\\(\\(([^{]+)\\{\\[([^ ]+) TO ([^]]+)]}\\|([01])\\)\\)";
Pattern p = Pattern.compile(patt);
Matcher m = p.matcher(str);
if (m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
System.out.println(m.group(4));
}
在這里試試吧!
請(qǐng)注意,您需要先調(diào)用 aMatcher的方法find(),matches()或者很少調(diào)用lookingAt(),然后才能使用它的大部分其他方法,包括toMatchResult()您嘗試使用的方法。
添加回答
舉報(bào)
0/150
提交
取消