A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高欢欢 中级黑马   /  2012-7-17 11:16  /  2318 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高欢欢 于 2012-7-18 07:28 编辑

已知一个字符串:"xxxxyyyyzzzz",其中xxxx和zzzz是已知的,需要提取中间未知的yyyy。请问这个正则表达式应该怎么写?

6 个回复

倒序浏览
我想思路是这样!你把已知的XXXX和ZZZZ设定为两个组,然后用获取除这两个组的未知内容!

具体格式我也不清楚,太多了!楼主找找吧!呵
回复 使用道具 举报
个么 你想要的答案来了{:soso_e113:}

以下是根据我自己的代码改编的{:soso_e183:}


import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class aa {

        public static void main(String[] args)throws Exception {
                String str = "xxxxyyyyzzzz";
                String reg = "(.)\\1+";      ---------------规则:叠词出现1次或多次,这一步是关键
                Pattern p = Pattern.compile(reg);     //将规则封装成正则对象
               
                Matcher m = p.matcher(str);         //将字符串和正则对象相关联,获取匹配器
  
                while(m.find())               // 将规则作用到字符串上,并进行符合规则的查找,返回boolean
                {
                         
                        String s = m.group();   //返回匹配后的结果
                        System.out.print(s+"  ");
                       
                         
                }
        }
}

打印结果是:xxxx  yyyy  zzzz
你取第二次的结果就ok了,就是你想要的

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 陈少文 于 2012-7-17 19:06 编辑

/*
想了很长时间:
用到public String replaceAll(String regex,
                         String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
*/
public class RegexDemo
{

         public static void main(String[] args)
         {
               String str = "xxxxyyyyzzzz";//已知头和尾,得中间
  
               //方法1:
               //str = str.replaceAll("xxxx|zzzz", "");
               //System.out.println(str);
             //方法2:
              str =  Pattern.compile("xxxx|zzzz").matcher(str).replaceAll("");
              System.out.println(str);
           }
}

方法1,和方法2,原理其实是一样的。
//打印出yyyy

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
王飞 发表于 2012-7-17 12:14
个么 你想要的答案来了

以下是根据我自己的代码改编的

学习了,哈哈...
回复 使用道具 举报
王飞 发表于 2012-7-17 12:14
个么 你想要的答案来了

以下是根据我自己的代码改编的

学习了,:handshake
回复 使用道具 举报
田建 高级黑马 2012-7-18 09:51:20
7#
陈少文 发表于 2012-7-17 18:57
/*
想了很长时间:
用到public String replaceAll(String regex,

赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马