请教一个正则表达式的问题:
Pattern.compile("(北|南)京");
可以匹配到:北京、南京
如果我想匹配:喜欢&古都&(北|南)京&漂亮
例如:我喜欢漂亮的古都北京 true
      我喜欢古都北京它漂亮 true
   
       喜欢漂亮的北京 false支持与关系位置可以随意
这种表达式如何写,谢谢赐教

解决方案 »

  1.   

    Pattern p = Pattern.compile(".*喜欢.*古都.*(北|南)京.*(漂亮)?");
        Matcher m = p.matcher("喜欢漂亮的古都北京");
        System.out.println("我喜欢漂亮的古都北京" + m.matches());
        m = p.matcher("我喜欢古都北京它漂亮");
        System.out.println("我喜欢古都北京它漂亮" + m.matches());
        m = p.matcher("喜欢漂亮的北京");
        System.out.println("喜欢漂亮的北京" + m.matches());