java - 正则表达式分割包含特定单词的句子

标签 java regex

我需要创建一个正则表达式,通过它我可以找到包含特定单词/正则表达式的所有句子。

例如。如果我有以下文字

Harrison Ford is working on a new Film. The film is yet to be released

The film has a gud star cast. Most paid actor is Harrison Ford in the film.

在这里,如果我想获取所有可以找到单词Harrison的句子,我该怎么做。正则表达式应返回以下选择

  • 哈里森·福特正在制作一部新电影。
  • 片酬最高的 Actor 是影片中的哈里森·福特。

句子的开头和结尾可以用换行符、句号或段落中的第一行来标记。

我使用了以下正则表达式

.*?((\n|.|^\\s*).*?\\b(Harrison)\\b.*?[.\n]).*

但是我无法分割线。 我从一开始就明白这句话,直到第一个哈里森·福特。

请让我知道你们中的任何人可能有的任何建议

最佳答案

如果你能保证一个句子并且只有一个句子以换行符或句号结尾,那么我建议你先拆分文本,然后搜索每一行:

String[] sentences = text.split("\\.|\\R+");
for (String se : sentences) {
    if (se.indexOf("Harrison") != -1)
        System.out.println(se.trim());
}

输出:

Harrison Ford is working on a new Film
Most paid actor is Harrison Ford in the film

关于java - 正则表达式分割包含特定单词的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34381201/

相关文章:

java - 从包含键 : 5, 10、15、20、25 等到 200 的映射中获取最近键的最快方法

javascript - javascript 正则表达式出现问题并替换

java - Linux 上的 JOGL 没有 glcontext 和 XInitThreads()

java - 如何从 Eclipse 命令调用的类实例设置 SWT Text 元素的内容?

javascript - 正则表达式拆分字符串 'DB415.DBD21.3'

javascript - 表情的正则表达式匹配

regex - 如何使用 grep 查找损坏的 NMEA 日志句子?

javascript - 在 Javascript 中对字符串内的整数重新编号

java - 无法识别此 uri 注册的资源

java - 如何使用 Apache POI 更新 XSLFTable(.pptx 演示文稿中的表)?