所以我想拿出一個正則表達式將匹配之類的東西:正則表達式不匹配字符聲明
() , ; { } .
但不
'(' ')' ',' ';'
等等
但我真的很掙扎。下面是我得到了什麼:
private String symbolMatcher = "[^'][\\\\(\\\\);\\\\{\\\\}\\\\[\\\\]:\\\\+\\\\-\\\\<\\\\>/\\\\*=&%\\\\|\\\\^@#$~][^']";
將在所有的目標是能夠使用掃描儀來標記這些不同的東西:
scanner = new Scanner(line);
scanner.useDelimiter("(?=[" + symbolMatcher + "])|(?<=[" + symbolMatcher + "])");
例如輸入:',''.'[email protected]'^
所需令牌:(',') ('.') (.) (.) (.) (@) (') (^)
您的symbolmatcher字符串解析爲此[[^'] [\\(\\); \\ {\\} \\ [\\]:\\ + \\ - \\ <\\>/\\ * = = &amp;%\\ | \\^@#$〜] [^']]'插入'useDelimeter'時。它是一個單一的複合Java類,有很多不好的東西。無法從中確定意圖。如果您可以擴展頂部的解釋,您可能會得到一些解決方案。我不知道你選擇的答案是什麼,或者它有什麼幫助... – sln