如果我要将扫描仪的定界符设置为scanner.useDelimiter("\\p{Punct}");,但又不想将引号包括在该列表中,是否有一种简单的方法可以将其排除在外?

我尝试做s.useDelimiter("(\\p{Digit}|\\s|\\p{Punct}&&[^"])+");,但是括号中的引号正在关闭引号。

最佳答案

您可以调用方法Scanner#useDelimiter(Pattern)

scanner.useDelimiter(Pattern.compile("[\\p{Punct}&&[^\"]]"))


[[\\p{Punct}&&[^\"]]匹配\\p{Punct}所涵盖的所有字符,但已转义的双引号除外。

10-08 02:01