正则表达式

正则表达式:符合一定规则的字符串

规则字符在java.util.regex Pattern类中

A:字符
    x 字符x(举例:a,1)
    \\ 反斜线字符

B:字符类
    [abc] a、b 或 c(简单类)
    [^abc] 任何字符,除了 a、b 或 c(否定) 
    [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) 
    [0-9] 0-9字符

C:预定义字符类
    . 任何字符
    \d 数字:[0-9] 
    \w 单词字符:[a-zA-Z_0-9]


D:Greedy 数量词 
X? X一次或一次也没有 
X* X零次或多次 
X+ X一次或多次 
X{n} X恰好 n 次 
X{n,} X至少 n 次 
X{n,m} X至少 n 次,但是不超过 m 次  

判断功能:
public boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。

分割功能:
public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。

替换功能:
public String replaceAll(String regex,String replacement):把符合regex的用replacement替换

练习:找出规则,写出正则,校验电话号码
13245678901 13332345678 13456789012 18812345678 18999999999 18666666666 18786868686

public static void main(String[] args) {
        String number = "13245678901";
        //正则表达式
        String reg = "1[38][0-9]{9}";
        //调用maches(String reg)进行判断指定字符串是否匹配指定的正则表达式
        boolean flag = number.matches(reg);
        System.out.println(flag);
    }

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

public static void main(String[] args) {
        String s="91 27 46 38 50";
        int [] arr=new int [5];
        String reg=" ";
        String[] str = s.split(reg);
        for (int i = 0; i < str.length; i++) {
            arr[i] = Integer.parseInt(str[i]);
        }
        Arrays.sort(arr);
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length; i++) {
            sb.append(arr[i]+" ");
        }
        String str2 = sb.toString();
        System.out.println(str2);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值