我有以下代码片段仅打印“ Indeed”而不是整个内容:
Pattern pat = Pattern.compile("\\w+");
s = new Scanner("Indeed it's going to be the thing i am talking about");
while(s.hasNext(pat)){
System.out.println(s.next(pat));
我完全知道,还有其他方法可以获取预期的输出,依此类推。但是,我想知道这种特殊情况,为什么它不起作用。
提前致谢。
您Pattern
是\\w+
,与匹配:[a-zA-Z_0-9]
,所以:
while(s.hasNext(pat))
因为它匹配:,所以只经历了一次Indeed
。
它不匹配it's
,因为的'
,所以循环终止,并只得到Indeed
。如果删除'
它,它将按计划工作。
要修复您的代码,您可以执行以下操作:
Pattern pat = Pattern.compile("[a-zA-Z_0-9']+");
以防万一,我只是'
在您的中添加了一个Pattern
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句