我需要提取,看起來像這樣的字符串值:正則表達式中的括號提取值Java
nameClass (val1)(val2)
有:
nameClass
val1
val2
的問題是,它也必須是適用於本:
nameClass
和
nameClass (val1)(val2)(val1)...(valn)
我試圖創建的正則表達式,但它僅適合用於
nameClass (val1)(val2)
變形,看起來像這樣(由維奧雷爾Moraru得到改善後):
String pattern = "((?:[a-z]+[A-Z][a-z]+))(([ |(]+)([-|+]?\\d+)([ |(|)]+)([-|+]?\\d+)([ |)]+))*";
我如何使圖案適用於所有
nameClass
和
nameClass (val1)(val2)(val1)...(valn)
?
Java代碼:
String txt = "inputTestdata(12)(-13)";
String patern = "((?:[a-z]+[A-Z][a-z]+))([ |(]+)([-|+]?\\d+)([ |(|)]+)([-|+]?\\d+)([ |)]+)";
Pattern p = Pattern.compile(patern);
Matcher m = p.matcher(txt);
if (m.find())
{
for (int i = 1; i < m.groupCount(); i ++)
{
System.out.print(m.group(i) + "\n");
}
}
能括號內還嵌套? – anubhava
不,只是一個接一個 – Miciurash
你真的需要一個正則表達式嗎?遍歷字符串和提取子字符串呢? – ogzd