我想匹配下面这两段文字中的信息:
1、原文:<title>【索尼爱立信MT15i】索尼爱立信(Sony Ericsson)MT15i 3G手机(蓝色)WCDMA/GSM 【行情 报价 价格 评测】</title>
     
   这个要配出“索尼爱立信(Sony Ericsson)MT15i 3G手机(蓝色)WCDMA/GSM”
   我在Regex Tester中用 (?<=】).+(?=【行情 报价 价格 评测】</title>)都能配出来
   但是在Java中, (?<=】)\\.+(?=【行情 报价 价格 评测】</title>)这样配不出来。2、原文:我在@京东商城 发现了一个非常不错的商品:索尼爱立信(Sony Ericsson)MT15i 3G手机(蓝色)WCDMA/GSM,京东价:¥2299.00。感觉不错,分享一下"
    
   这个我在Regex Tester中用(?<=京东价:).+(?=。)可以配出来,在java中即使添加了\\也是配不出来,这是为什么?劳烦帮个忙,较急!

解决方案 »

  1.   


    这个不行,去掉程序就报错啦~在java中正则表达式是个字符串,去掉\\就会把.视为普通的小点了
    不过找到解决办法了,但是为什么这么做还不是很明白,谢谢你!String str = "<title>【索尼爱立信MT15i】索尼爱立信(Sony Ericsson)MT15i 3G手机(蓝色)WCDMA/GSM 【行情 报价 价格 评测】</title>";
             String eg = "(?<=】)(.+)(?=【行情 报价 价格 评测】</title>)";
             Matcher m = Pattern.compile(eg, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE).matcher(str);
             while (m.find()) {
                 System.out.println(m.group(1));
             }