1
我想用正則表達式過濾* /%。下面的人都這麼遠我已經試過的:使用正則表達式在Java中過濾多個標誌
String reg = "[\\*]||[/]||[%]";
String reg2 = "[*]||[/]||[%]";
String reg3 = "*/%";
上述所有給出了這樣相同的例外:
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *
不過,我有另外一個其中挑選出多一點:
String reg4 = "[0-9\\*+\\-/%]";
那一個完美的工作。
我也嘗試過只對個別符號進行整理,唯一一個與之搏鬥的是「*」。我曾嘗試過的只有那一個是:
String reg1 = "*";
String reg2 = "\\*";
String reg3 = "[\\*]";
兩者都給出了與前面提到的相同的例外。
相關代碼:
/*
* calc1 is an ArrayList<String>
*/
public void solve() {
while(calc1.size() > 1) {
for(int i = 0; i < calc1.size(); i++) {
if(calc1.get(i).matches("regex")) calculate(i);
}
}
System.out.println(calc1.toString());
}
編輯
建議嘗試:
String reg = "[*/%]";
String reg2 = "[\\*/%]";
爲什麼不把全部放入字符類:'[* /%]'?看[demo](http://ideone.com/X75vjQ) –
啊,我想你用'|'連接子模式吧? **請顯示所有相關代碼** –
我得到了同樣的異常不幸 – Adrian