我正在使用java中的Scanner类来浏览文本文件并提取每个句子。我在扫描仪上使用 setDelimiter 方法来处理正则表达式:
Pattern.compile("[\\w]*[\\.|?|!][\\s]")
目前这似乎有效,但它在句子末尾留下了空格。有没有一种简单的方法可以匹配末尾的空格但不将其包含在结果中?
我意识到这可能是一个简单的问题,但我以前从未使用过正则表达式,所以放轻松:)
最佳答案
试试这个:
"(?<=[.!?])\\s+"
这使用 lookarounds匹配前面带有 [.!?]
的 \\s+
。
如果您还想删除标点符号,只需将其包含在匹配中即可:
"[.!?]+\\s+"
这会将 "ORLY!?!? LOL"
拆分为 "ORLY"
和 "LOL"
关于java - Java中使用正则表达式匹配句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649975/