
[英]How to use \\p{Punct} in java to check for beginning of text line with: {"
[英]How to set delimiter as “\\p{Punct}” excluding quotation mark?
如果我要将扫描仪的定界符设置为scanner.useDelimiter("\\\\p{Punct}");
但不希望将引号包含在该列表中,是否有一种简单的方法可以排除引号?
我试图做s.useDelimiter("(\\\\p{Digit}|\\\\s|\\\\p{Punct}&&[^"])+");
但括号中的引号将for括起来引号。
您可以调用方法Scanner#useDelimiter(Pattern)
:
scanner.useDelimiter(Pattern.compile("[\\p{Punct}&&[^\"]]"))
[[\\\\p{Punct}&&[^\\"]]
匹配\\\\p{Punct}
覆盖的所有字符,但已转义的双引号除外。
这称为字符类减法 ,请参阅Java Trail:[正则表达式]字符类 :
最后,您可以使用减法来否定一个或多个嵌套字符类 ,例如[0-9 && [^ 345]]。 本示例创建一个单个字符类,该字符类匹配从0到9的所有字符,数字3、4和5除外。
对于给定的请求,这是模式[\\p{Punct}&&[^"]]
( [\\p{Punct}&&[^"]]
转义为字符串文字)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.