与字符声明不匹配的正则表达式

时间:2014-01-14 18:31:04

标签: java regex

所以我试图提出一个匹配以下内容的正则表达式:

( ) , ; { } .

但不是

'(' ')' ',' ';'等......

但我真的很挣扎。这就是我所拥有的:

private String symbolMatcher = "[^'][\\\\(\\\\);\\\\{\\\\}\\\\[\\\\]:\\\\+\\\\-\\\\<\\\\>/\\\\*=&%\\\\|\\\\^@#$~][^']";

所有目标都是能够使用扫描仪对这些不同的东西进行标记:

scanner = new Scanner(line);
scanner.useDelimiter("(?=[" + symbolMatcher + "])|(?<=[" + symbolMatcher + "])");

示例输入:',''.'...@'^

所需的代币:(',') ('.') (.) (.) (.) (@) (') (^)

3 个答案:

答案 0 :(得分:1)

点击表达式查看其工作原理,并解释\[^'\]+\[\(\),;{}\.\]应该让您了解如何开始使用!

答案 1 :(得分:0)

如果我理解正确,这个正则表达式应该有所帮助: ('.*?'|.)

答案 2 :(得分:0)

我认为这个正则表达式是你想要的:

(?<!')[...](?!')

...替换为您要匹配的字符,例如:(?<!')[(),;{}.<>+\\-:](?!')

您可以在此处找到解释和演示:http://regex101.com/r/qE6nV1