import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(餐盘|餐具|餐盒)收(一下|下|掉)?|收(一下|下)?(餐盘|餐具|餐盒|餐)";
final String string = "收一下餐。\n"
+ "吗,我总是吗个服务员帮我收下餐盘。\n"
+ "收一下餐。\n"
+ "收餐?\n"
+ "帮我叫个服务员收一下餐盘。\n"
+ "嗯,收一下餐具。\n"
+ "收一下餐。\n"
+ "就是麻烦你收费早餐算呢?\n"
+ "收一下餐。\n"
+ "帮我收一下餐盘。\n"
+ "帮我收一下餐盘。\n"
+ "嗯,帮我收回去好吗?我这个用餐有用完了。\n"
+ "收餐?\n"
+ "请帮我收一下餐盘。\n\n"
+ "收一下餐。\n"
+ "吗,我总是吗个服务员帮我收下餐盘。\n"
+ "收一下餐。\n"
+ "我刚刚有一份那个中餐收到了,没有?\n"
+ "早餐九点半收。\n"
+ "收餐?\n"
+ "帮我叫个服务员收一下餐盘。\n"
+ "嗯,收一下餐具。\n"
+ "收一下餐。\n"
+ "就是麻烦你收费早餐算呢?\n"
+ "收一下餐。\n"
+ "帮我收一下餐盘。\n"
+ "帮我收一下餐盘。\n"
+ "早餐收钱吗?\n"
+ "嗯,帮我收回去好吗?我这个用餐有用完了。\n"
+ "把那个餐具收掉。\n"
+ "帮我把餐盒拿收拾下房间。\n"
+ "收餐?\n"
+ "请帮我收一下餐盘。";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html