我需要创建一个正则表达式,通过它我可以找到包含特定单词/正则表达式的所有句子。
例如。如果我有以下文字
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/