如果我要将扫描仪的定界符设置为scanner.useDelimiter("\\p{Punct}");
,但又不想将引号包括在该列表中,是否有一种简单的方法可以将其排除在外?
我尝试做s.useDelimiter("(\\p{Digit}|\\s|\\p{Punct}&&[^"])+");
,但是括号中的引号正在关闭引号。
最佳答案
您可以调用方法Scanner#useDelimiter(Pattern)
:
scanner.useDelimiter(Pattern.compile("[\\p{Punct}&&[^\"]]"))
[[\\p{Punct}&&[^\"]]
匹配\\p{Punct}
所涵盖的所有字符,但已转义的双引号除外。