所以我试图提出一个匹配以下内容的正则表达式:
( ) , ; { } .
但不是
'(' ')' ',' ';'
等......
但我真的很挣扎。这就是我所拥有的:
private String symbolMatcher = "[^'][\\\\(\\\\);\\\\{\\\\}\\\\[\\\\]:\\\\+\\\\-\\\\<\\\\>/\\\\*=&%\\\\|\\\\^@#$~][^']";
所有目标都是能够使用扫描仪对这些不同的东西进行标记:
scanner = new Scanner(line);
scanner.useDelimiter("(?=[" + symbolMatcher + "])|(?<=[" + symbolMatcher + "])");
示例输入:',''.'...@'^
所需的代币:(',') ('.') (.) (.) (.) (@) (') (^)
答案 0 :(得分:1)
点击表达式查看其工作原理,并解释\[^'\]+\[\(\),;{}\.\]
应该让您了解如何开始使用!
答案 1 :(得分:0)
如果我理解正确,这个正则表达式应该有所帮助:
('.*?'|.)
答案 2 :(得分:0)
我认为这个正则表达式是你想要的:
(?<!')[...](?!')
将...
替换为您要匹配的字符,例如:(?<!')[(),;{}.<>+\\-:](?!')
您可以在此处找到解释和演示:http://regex101.com/r/qE6nV1。