黑马程序员 正则表达式2 替换和获取

---------------------- <a target="blank">ASP.Net+Android+IO开发S</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------

/*
 * 字符串的第三大功能
 * 替换;用的是String 类中的 replaceALL();
 * 要注意的是,将几个一样的字母换成一个,这里面要用到$符号
 * */
public class Regex{
	public static void main(String[] args){
		show();
	}
	public static void show(){
		String str = "gfhds123333uiuwfk3d5sjsb";
			str="asgjsdqqghjhssdsgjui";
		String st="(.)\\1+";
		String st1="#";
//		str=str.replaceAll(st, st1);
//		System.out.println(str);
		//如果说现在我有这样一个需求,就是将几个一样的字母
		//替换成一个字母.在外部获取组用的就是$符号来完成的
		st="(.)\\1+";
		st1="$1";
		str=str.replaceAll(st, st1);
		System.out.println(str);
	}
}

/*
 * 第四大功能获取
 * 4,获取,将字符串中符合规则的字串取出来.
 * 
 * 操作步骤
 * 1,将正则表达式封装成对象.
 * 2,让正则对象和要操作的字符串相关联.
 * 3,关联后,获取正则匹配引擎.
 * 4,通过引擎对符合规则的字串进行操作,比如取出.
 * 
 * 
 * */
public class RegexGet2 {
  public static void main(String[] args){
	  regexGet();
  }
  public static void regexGet(){
	  String str= "ming tian jiu yao fang jia la ,da jia.";
	  String reg= "\\b[a-z]{4}\\b";
	  //这一步是在将,规则封装成字符串.
	  Pattern p = Pattern.compile(reg);
	  //让正则对象和要操作的字符串相关联.获取匹配器对象
	  Matcher m= p.matcher(str);
	  
	  //其实String类中的matches方法,用的就是Pattern和Matcher
	  //对象来完成的.只不过被String 的方法封装后,用起来较为简单
	  //但是功能却单一.
	  
	  //将规则作用到字符串上,并进行符合规则的子串查找
	  //只有拿着规则到,字符串中去查找,判断有没有,有的话在取出来
	  //这样的话,就形成了循环,因为每一次都要回来判断,所以要while
	  
	//  boolean b= m.find();
	// String s= m.group();
	//  System.out.println(b+"......."+s);
	 while(m.find()){
		 System.out.println(m.group());
		 //这一步是在获取,子串从第几个位置上开始获取,包含头
		 //不包含尾
		 System.out.println(m.start()+";;;"+m.end());
	 }
  }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值