每日一学(21)——(常用API)正则表达式

字符串类中涉及正则表达式的常用方法

1、boolean  match (String regex)告知此字符串是否匹配给定的正则表达式

例如:"abc".matches("[a]")匹配成功返回true

小案例:

举例:校验qq号码. 1: 要求必须是5-15位数字  2: 0不能开头

         校验手机号码  1:要求为11位数字   2:第1位为1,第2位为3、4、5、7、8中的一个,后面9位为0到9之间的任意数字。

代码演示:下方代码的输出结果为:true true

package day16;
/*
 * 实现正则规则和字符串进行匹配,使用到字符串类的方法
 * String类三个和正则表达式相关的方法
 *   boolean matches(String 正则的规则)
 *   "abc".matches("[a]")
 *   String[]split(String 正则的规则)
 *   "abc".split("a")使用规则将字符串进行切割
 *   String replaceAll(String 正则的规则,String 字符串)
 *   "abc0123".replaceAll("[\\d]","#")
 *   安装正则的规则,替换字符串
 */
public class RegexDemo01 {
  public static void main(String[] args) {
	  checkQQ();
	  checkTel();
}
  /*
   * 检查手机号码是否合法
   * 1开头可以是34578 0-9位数固定11位
   */
  public static void checkTel(){
	  String telNumber="13351258005";
	  // String类的方法matches
	  boolean a=telNumber.matches("1[34578][0-9]{9}");//[34578]可以随意调换顺序
	  System.out.println(a);
  }
  /*
   * 检查QQ号码是否合法
   * 0不能开头,全数字,位数5,10位
   * 123456
   */
  public static void checkQQ(){
	  String QQ="123456";
	 // String regex="[1-9][0-9]{4,9}";
	  boolean a=QQ.matches("[1-9][0-9]{4,9}");//[0-9]可以换成\\d一个\代表的是转义
	  System.out.println(a);
  }
}

 2、String []  split (String regex) 根据给定正则表达式的匹配拆分此字符串

例如:"abc".split("a")使用规则将字符串进行切割

代码演示:下面代码的输出结果为:切割的次数为4   12   25   36

注意用“.”切割的话正则是“\\.”意思是把“.”转成了普通的点,因为“.”代表的是任意字符

public class RegexDemo02 {
public static void main(String[] args) {
	spiltDemo();
	spiltDemo1();
}
/*
 * String类方法split对字符串进行切割
 * 18  22  40   65按照-对字符串进行切割
 */ 
   public static void spiltDemo1(){
	   String str="18  22  40   65";
	   String [] strArr=str.split(" +");//+加号删除多余的空格
	   System.out.println("切割的次数为"+strArr.length);
		  for(int i=0;i<strArr.length;i++){
			  System.out.println(strArr[i]);
		  }
   }
/*
 * String类方法split对字符串进行切割
 * 12-25-36-98按照-对字符串进行切割
 */
  public static void spiltDemo(){
	  String str="12-25-36-98";
	  //按照-对字符串进行切割,String类方法split
	  String [] strArr=str.split("-");
	  System.out.println("切割的次数为"+strArr.length);
	  for(int i=0;i<strArr.length;i++){
		  System.out.println(strArr[i]);
	  }
  }
}

3、  String replaceAll(String regex,String replacement)  将符合规则的字符串内容,全部替换为新字符串

例如:"abc0123".replaceAll("[\\d]","#")把满足数字的字符串替换成#号

下面代码的输出结果为:Hello#####World#######

package day16;

public class RegexDemo03 {
  public static void main(String[] args) {
	  replaceAll();
}
  /*
   * "Hello12345World6789012"将所有数字替换掉
   * String类方法replaceAll(正则规则,替换后的新字符串)
   */
  public static void replaceAll(){
	  String str="Hello12345World6789012";
	  String a=str.replaceAll("[\\d+]", "#");//[\\d]+多个#换成了一个#号
	  System.out.println(a);
  }
}

匹配正确的数字:

匹配规则:

    匹配正整数:”\\d+”

    匹配正小数:”\\d+\\.\\d+” 

    匹配负整数:”-\\d+”

    匹配负小数:”-\\d+\\.\\d+”

    匹配保留两位小数的正数:”\\d+\\.\\d{2}”

    匹配保留1-3位小数的正数:”\\d+\\.\\d{1,3}”

匹配合法的邮箱

匹配规则:

    ”[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]+)+”

    ”\\w+@\\w+(\\.\\w+)+”

获取IP地址(192.168.1.100)中的每段数字:”\\.”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值