![](/img/trans.png)
[英]Java regex to split words in a sentences with value and its metric as single word
[英]regex to split sentences containing specific words
我需要創建一個正則表達式,通過它可以找到包含特定單詞/正則表達式的所有句子。
例如。 如果我有以下文字
哈里森·福特(Harrison Ford)正在制作一部新電影。 這部電影尚未發行
這部電影的演員陣容很出色。 電影中收入最高的演員是哈里森·福特。
在這里,如果我想獲得所有可以在其中找到“ 哈里森 ”一詞的句子,該如何處理。 正則表達式應返回以下選擇
句子的開頭和結尾可以用換行符,句號或如果是段落的第一行來標記。
我使用了以下正則表達式
.*?((\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,以下代碼可以解決問題
String data = "Harrison Ford is working on a new Film\n The film is yet to be released. "
+ "The film has a gud star cast. "
+ "Most paid actor is Harrison Ford in the film.";
String tmpData = data.replace('\n', '.');
Pattern myPattern = Pattern.compile("([\\w|\\s]*Harrison[\\w|\\s]*)[\\.]");
Matcher m = myPattern.matcher(tmpData);
while(m.find()) {
System.out.println("Result: " + m.group(1));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.