日期:2014-05-20  浏览次数:20597 次

正则匹配三个无序词组
匹配三个无序词组

比如三个词组为 我们 你们 他们

则 asdf,我们,你们,他们

  我们,asdf,你们,他们

  我们,你们,他们,asdf,

  你们,他们, 我们,asdf

都能匹配上

总之只要三个词组都出现,而且不论他们的顺序是什么,就能匹配

求符合要求的正则表达式?



------解决方案--------------------
用 indexOf 不是更好么!

Java code
import java.util.regex.Pattern;

public class Test {

    public static void main(String[] args) {
        String[] strs = {
                "asdf,我们,你们,他们",
                "我们,asdf,你们,他们",
                "我们,你们,他们,asdf",
                "你们,他们, 我们,asdf",
                "你们,他们, 我,asdf"
            };
        Pattern pattern = Pattern.compile("(?=.*你们)(?=.*我们)(?=.*他们).*");
        for (String str : strs) {
            System.out.printf("%s: %s%n", str, pattern.matcher(str).matches());
        }
    }
}