正则表达式(regular expression)

//正则表达式(regular expression)
/*
split
matches
replaceAll
*/
/**
* 是一种验证规则,用来判断字符串是否符合某种特定格式:
* 
* 手机号/邮箱......
*/
/*
 * 常见的正则的规则:
 * [0-9]:用来匹配一个数字   简写方式:\d
 * [a-z]:用来匹配一个小写英文字母
 * [A-Z]:用来匹配一个大写英文字母
 * [\u4e00-\u952f]用来匹配一个汉字
 * [135]1或3或5
 * [1ab]1或a或b
 * [0-9a-zA-Z]匹配数字+大小写英文
 * [0-9a-zA-Z_] 单词字符简写方式:\w
 * 
 * 
 * 
 * 原始字符串.matches(正则)
 * 返回boolean型,表示原始字符串与正则表达式是否匹配
 * 
 * [^0-9]   用来匹配一个非数字   简写方式:\D
 * [^a-z]   除了a-z 以外其他字符    
 * [^a-zA-Z0-9_]非单词字符       简写方式:\W
 * 空白字符 空格  \t  简写方式:\s
 * 
 * 
 * 量词:
 * {m,n}    m表示最少出现的次数,n表示说最多出现的次数
 * {k}      恰好出现k次
 * {m,}     最少出现m次
 * {,n}     最多出现n次
 * {0,}     出现0到无穷次 简写方式:*
 * {1,}     出现1到无穷次 简写方式:+
 * {0,1}    可以出现1次或不出现  简写方式:?
 * 
 * 
 * 正则表达式:
 * . :正则的小数点:表示匹配任意一个字符    真正的小数点:\.
 * 
 * 验证邮箱地址:xxxxxxx@xxxxxx.xxx
 * \w+@\w+\.\w+     //邮箱地址简单写法,后面改进
 */

public class TestRegular {
    public static void main(String[] args) {

        /*
         * 原始字符串进行拆分:
         * 原始字符串.split("正则")
         * 
         * 根据正则表达式,将原始字符串按正则表达式进行拆分
         * 
         * 例:"aaa.bbb.ccc.ddd".split(",");  
         * ==>返回字符串数组String[]{"aaa","bbb","ccc","ddd"}
         * 
         * 
         * 
         */
        System.out.println("a".matches("[0-9]"));//false
        System.out.println("1".matches("[0-9]"));//true
        //正则表达式中的  \  在java中需要写为    \\
        System.out.println("1".matches("\\d"));//注意java转义字符//\true
        System.out.println("2".matches("[135]"));//false
        System.out.println("吃".matches("[\u4e00-\u952f]"));//汉字不需要\\,\\u即可
        System.out.println("严".matches("[\u4e00-\u4e0f]"));
        //验证单词字符
        System.out.println("@".matches("[\\w]"));//false
        System.out.println("_".matches("[\\w]"));//true
        //验证取反
        System.out.println("2".matches("[^0-9]"));
        System.out.println("a".matches("[^0-9]"));
        //空白字符
        System.out.println(" ".matches("\\s"));
        System.out.println("\t".matches("\\s"));

        //{m,n}量词
        System.out.println("123456".matches("[0-9]{11,11}"));
        System.out.println("123456".matches("[0-9]{11}"));
        System.out.println("13812345678".matches("[0-9]{11,11}"));


        //验证邮箱
        System.out.println("aaaa3333@cc".matches("\\w+@\\w+\\.\\w+"));
        System.out.println("aaa@sjafd.coda".matches("\\w+@\\w+\\.\\w+"));

        //abc   出现1到多次
        //()叫做分组,把括号内的内容作为一个整体来看待
        String str1 = "abcabcabc";
        str1.matches("abc+");
        System.out.println(str1.matches("abc+"));//错误的正则,+只影响到c
        System.out.println(str1.matches("(abc)+"));//正确


        //abc 或 def 出现1到多次,| 代表组内或者关系
        System.out.println("defdef".matches("(abc|def)+"));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值