黑马程序员技术交流社区

标题: 请教关于正则表达式 [打印本页]

作者: 高欢欢    时间: 2012-7-17 11:16
标题: 请教关于正则表达式
本帖最后由 高欢欢 于 2012-7-18 07:28 编辑

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


作者: 黑马陈旭东    时间: 2012-7-17 11:40
我想思路是这样!你把已知的XXXX和ZZZZ设定为两个组,然后用获取除这两个组的未知内容!

具体格式我也不清楚,太多了!楼主找找吧!呵
作者: 王飞    时间: 2012-7-17 12:14
个么 你想要的答案来了{: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了,就是你想要的

作者: 陈少文    时间: 2012-7-17 18:57
本帖最后由 陈少文 于 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

作者: 王宝康    时间: 2012-7-17 19:47
王飞 发表于 2012-7-17 12:14
个么 你想要的答案来了

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

学习了,哈哈...
作者: 高欢欢    时间: 2012-7-18 07:28
王飞 发表于 2012-7-17 12:14
个么 你想要的答案来了

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

学习了,:handshake
作者: 田建    时间: 2012-7-18 09:51
陈少文 发表于 2012-7-17 18:57
/*
想了很长时间:
用到public String replaceAll(String regex,

赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2