我将扫描仪的分隔符设置为:
scanner.useDelimiter("(\\s*?)(#.*?\n)(\\s*?)");
目标是忽略表单的注释
#comment \n
因此:
Hello#inline comment
world.
变成:
Hello
world.
像我一样设置分隔符,我会想:
Hello#inline comment world.
会变成:
[Hello]
和:
Hello#inline comment\n world.
会变成
[Hello, world.]
最佳答案
我可能弄错了,但看起来你可能想使用类似的东西
scanner.useDelimiter("#.*(\r?\n|\r)?");
您需要记住,并非每一行都以 \n
(或 \r
或 \r\n
)结尾,例如 last行的末尾不能有 \n
。石灰分离器在不同的操作系统中也可能不同。
编辑:
根据您的评论,您可能需要添加扫描仪标准分隔符(一个或多个空格 - \\s+
或 \p{javaWhitespace}+
如果您prefer), 所以试试
scanner.useDelimiter("\\s*#.*(\r?\n|\r)?|\\s+");
关于java - 扫描仪正则表达式分隔符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25702507/