如何提取包含某个单词的每个句子

时间:2016-08-08 03:20:09

标签: java regex loops

以下是我要做的事情,我想从下面的wiki摘录中提取包含“3G”的每个句子

“有九代iPhone型号,每款都配有iOS的九个主要版本之一。最初的第一代iPhone是GSM手机和已建立的设计先例,例如在所有版本中都存在的按钮放置iPhone 3G增加了3G蜂窝网络功能和A-GPS定位功能,iPhone 3GS增加了更快的处理器和更高分辨率的摄像头,可以录制480p的视频。更高分辨率960×640。“

我知道我需要使用正则表达式和.split()方法。但是,如何循环获取3G的所有实例?

2 个答案:

答案 0 :(得分:1)

您可以使用splitcontains

String[] sentArray = input.split("\\.");
List<String> output = new ArrayList<String>();
for (String sentence : sentArray) {
    if (sentence.contains("3G")) {
        output.add(sentence);
    }
}       
System.out.println(">>output=" + output);

答案 1 :(得分:0)

我会选择这样的事情:

import java.util.regex;
import java.util.ArrayList;

ArrayList<String> getThreeG(String text) {
    String[] parts = text.split(".");

    Pattern r = Pattern.compile("3G"); // Feel free to make it more complicated
    ArrayList<String> relevant;

    for (int i = 0; i < parts.length; i++) {
        Matcher m = r.matcher(parts[i]);
        if (m.find()) {
            relevant.add(parts[i]);
        }
    }

    return relevant;
}

如果您只查找具有“3G”的句子,请将示例中的正则表达式替换为"\\s3G\\s"