正则表达式

来源:互联网 发布:网络上拨娜娜什么意思 编辑:程序博客网 时间:2024/06/03 12:47
正则表达式
    * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
    * 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的
常见对象(字符类演示)
* A:字符类
    * [abc] a、b 或 c(简单类)
    * [^abc] 任何字符,除了 a、b 或 c(否定)
    * [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
    * [0-9] 0到9的字符都包括
常见对象(预定义字符类演示)
* A:预定义字符类
    * . 任何字符。
    * \d 数字:[0-9]
    * \w 单词字符:[a-zA-Z_0-9]
常见对象(数量词)
* A:Greedy 数量词
    * X? X,一次或一次也没有
    * X* X,零次或多次
    * X+ X,一次或多次
    * X{n} X,恰好 n 次
    * X{n,} X,至少 n 次
    * X{n,m} X,至少 n 次,但是不超过 m 次

常见对象(正则表达式的分割功能)
* A:正则表达式的分割功能

    * String类的功能:public String[] split(String regex)

、* B:案例演示

    * 正则表达式的分割功能

 String [] sArr =s.split(" ");

package com.heima.regex;

public class Demo5_Split {

    public static void main(String[] args) {
        String s ="s1.s2s3";
        String [] arr = s.split("\\.");   \\     \\.分割.
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        

    }

}


常见对象(把给定字符串中的数字排序)
* A:案例演示

    * 需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”

代码:

import java.util.Arrays;

public class Test1 {

    public static void main(String[] args) {
        /*A:案例演示
        * 需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”*/
        /*1.将字符串切割成字符串数组
        2.将字符串转换成数字并将其储存再等长度的int数
        3.排序
        4.遍历拼接成字符串
    */
        String s ="91 27 46 38 50";
        //切割
        String [] sArr =s.split(" ");
        //存储
        int [] arr =new int[sArr.length];
        for (int i = 0; i < sArr.length; i++) {
            arr[i] =Integer.parseInt(sArr[i]);//字符串转换成数字
        }
        //排序
        Arrays.sort(arr);
       //遍历
        StringBuilder sb =new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if( i == arr.length-1){
                sb.append(arr[i]);
            }else {
                sb.append(arr[i]+" ");
            }
           System.err.println(sb);
    }
        
    }
    }




常见对象(正则表达式的替换功能)
* A:正则表达式的替换功能
    * String类的功能:public String replaceAll(String regex,String replacement)
* B:案例演示

    * 正则表达式的替换功能

代码:


public class Demo6_ReplaceAll {

    public static void main(String[] args) {
        
        String s ="wo1111ai2ni";
        String regex="\\d";       // \\d 代表任意数字
        
        
        String s3=s.replaceAll(regex, "");
        System.out.println(s3);
    }

}

正则匹配代码:

Pattern p = Pattern.compile("a*b");//获取到正则表达式
        Matcher m = p.matcher("aaaaab"); //获取匹配器
        boolean b = m.matches();//匹配正则表达式
        System.out.println(b);
        或者:
        System.out.println("aaaab".matches("a*b"));


A:正则表达式的获取功能
        * Pattern和Matcher的结合使用
        * B:案例演示
        * 需求:把一个字符串中的手机号码获取出来
        String a ="我的手机号码是18988888888,曾经用18987654321,还用过18812345678";
        String regex ="1[3578]\\d{9}";//手机号码的正则表达式

        Pattern p = Pattern.compile(regex);//获取到正则表达式
        Matcher m = p.matcher(a);//获取匹配器

        while(m.find()){
            System.out.println(m.group());
            
        }


原创粉丝点击