假设我从输入文件构造了一个新的扫描仪
Scanner aScanner = new Scanner(new FileReader("file.txt"));
并且file.txt有这样的多行
blah blah blah blah
blah blah blah
我想检查扫描仪是否有下一个与我的模式匹配的值:
aScanner.hasNext("blah");
很好 但是,当我尝试使用行尾字符$时:
aScanner.hasNext("blah$");
它失败。当我标记多行(?m)时,它甚至失败。然后我意识到$与字符串的末尾或输入的末尾匹配,而这两种情况都不存在(最末尾除外)。鉴于此,我将如何匹配下一个输入的结尾?
传递给的参数hasNext()
是定界符的模式,然后在调用时使用它next()
。
尝试使用后向替代:
aScanner.hasNext("(?<=blah)\\s+");
这表示使用空格作为定界符,但仅在以“ blah”开头时使用,尽管这会消耗掉直到“ blah”为止的所有内容,并根据需要跳过其他字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句