正则表达式

正则表达式
介绍

正则表达式是对字符串做判断的。可以使用正则表达式的规则快速简单的判断出字符串是否符合规则。
字符类

[abc] :[]表示一个字符,里面写了abc表示这个字符可以是a或b或c
[^abc] :代表除a,b,c以外的任何字符
[a-z] :代表a到z这些所有的小写字母都可以
[0-9] :代表的是所有的数字都可以
[a-z0-9] :小写字母和数字都可以
逻辑运算符

[a-z&&[^d]] :可以是除了d之外的所有小写字母
[a|b|c] :a或b或c 和[abc]效果是一样的,所以这个不用
预定义字符

. :表示可以匹配任何字符
\d :表示0-9的数字,和[0-9]的效果是一样的
\w :表示单词字符,和[a-zA-Z_0-9]的效果是一样的
数量词

? : 表示0次或1次
* : 表示任意次
+ : 表示1次或多次
{n} : 必须出现n次
{n,} : 至少出现n次
{n,m}: 可以出现n到m次
分组括号

()代表分组,第一对儿小括号是第一组,二个对儿小括号是第二组
代码演示

public class Demo02正则演示 {
public static void main(String[] args) {

    //字符串和正则表达式判断的方法
    //只能是一个字符,且必须是abc中的一个
    //boolean b = s.matches("[abc]");

    //只能是一个字符,且必须是abc以外的字符
    //boolean b = s.matches("[^abc]");

    //必须是两个字符,且第一个字符是abc中的一个,第二个字符是def中的一个
    //boolean b = s.matches("[abc][def]");

    //可以匹配一个任何字符
    //boolean b = s.matches(".");

    //可以匹配一个数字
    //boolean b = s.matches("\\d");


    //出现0次或1次单词字符
    //boolean b = s.matches("\\w?");

    //出现一次或多次数字
    //boolean b = s.matches("\\d+");

    String s = "哈哈哈";
    //第一位是单词字符,后面出现2到4个数字字符
    //boolean b = s.matches("\\w\\d{2,4}"); //a0001-true   B12-true   123-true


    //呵呵    嘿嘿   哈哈    AA    bb

    //第一对儿()表示第一组,\\1表示再出现一次第一组的内容
    //boolean b = s.matches("(.)\\1");

    //第一对儿()表示第一组,\\1表示再出现一次第一组的内容{2}表示前面的内容出现2次
    boolean b = s.matches("(.)\\1{2}");    //哈哈哈
    
    
    String s = "哼哈哈哼";
    //(.)表示第一组是任意字符  (.)表示第二组是任意字符  \\2表示第二组再出现一次  \\1表示第一组再出现一次
    //一个组里面不是只能写一个字符可以任意写
    boolean b = s.matches("(.)(.)\\2\\1");
    
    
    System.out.println(b);
}

}
介绍两个字符串中和正则表达式相关的方法

split()

public class Demo03和正则相关的方法 {
public static void main(String[] args) {
/*
//split()
String s = “123,456,789”;

    //split():切割
    //按照,切割
    String[] arr = s.split(",");

    System.out.println(arr.length);   //3

*/

    //-------------------------------------------------

    //split()
    String s = "123.456.789";

    //split():切割
    //按照,切割
    //方法的参数要的其实是一个正则表达式, .代表的是任意字符
    //如果要让.代表点本身不让他代表任意字符,就需要转移
    String[] arr = s.split("\\.");

    System.out.println(arr.length);   //3
}

}
replaceAll()

public class Demo04和正则相关的方法 {
public static void main(String[] args) {
String s = “just do it,wuyanzu521 nothing id impossible99”;

    //replace() :用新的字符串代替旧的字符串

    //用*把d都替换掉
    System.out.println(s.replace("d","*"));


    //replaceAll()  :也是用新的字符串替换旧的字符串,但是第一个参数可以用正则

    //.表示任意字符   在此时把所有字符都换成*
    //System.out.println(s.replaceAll(".","*"));

    //把每个数字换成*
    //System.out.println(s.replaceAll("\\d","*"));

    //把每段数字换成一个*
    System.out.println(s.replaceAll("\\d+","*"));
    
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值