Day25 正则表达式

正则表达式 : 定义了字符串的匹配模式
 *
 * 可以用来搜索,编辑或处理文本,并不仅限于某一种语言,但是每种语言中有细微的差别
 *
 * JDK1.4 推出的 java.util.regex 包,很好的支持了正则表达式
 *
 * 常用语法 :
 *
 *         \ 转移符 , 把有意义字符转换为无意义字符
 *             但是java中 \ 也是转移符,所以在java中编写正则表达式的时候,需要转移符的时候需要些 两个 \\
 *
 *         字符取值范围相关
 *             [abc] : 表示 可能是a, 也可能是b, 也可能是c (是abc中的任意一个)
 *             [^abc] : 表示不是a,b,c中的任何一个
 *             [a-zA-Z] : 表示是大小写字母 , [a-z] 小写字母 , [A-Z] 大写字母 [0-9] 数字0-9  
 *             [a-zA-Z0-9] : 表示是数字或字母
 *
 *         简洁表示
 *             . : 匹配任意字符
 *             \d : 表示数字  等同于[0-9]
 *             \D : 表示非数字 等同于 [^0-9]
 *             \s : 表示由空字符组成, [\t\n\r\x\f]
 *             \S : 表示非空字符组成
 *             \w : 表示由字母数字下划线组成  [a-zA-Z0-9_]
 *             \W : 表示非字母数字下划线  [^a-zA-Z0-9_]
 *
 *         表示数量的
 *             ? : 表示出现0次或1次
 *             + : 表示1次或多次, 大于等于1
 *             * : 任意次数(0~N)
 *             {n} : 表示出现n次 , {2} 表示出现2次
 *             {n,m} : 表示出现n次到m次 , {2,5} : 表示出现2~5次
 *             {n,} : 表示出现n及以上 >=n
 *             
 *     () : 把他们看做一个整体
 *// 可以使用() 对匹配到的数据进行分组, 第一个() 就是第一组,第二个() 就是第二组
        // 也可以不分组,如果不分组的情况下做数据提取,就只能提取到整个匹配到的字符串
        // 分组之后 可以提取对应组的数据
        // ((.{2,3})电话号码是) 第一组
        // (.{2,3}) 第二组
        // (\\d{11}) 第三组
 * | 或  , a|b ,a和b都可以匹配
 *
 * ^ : 以什么什么打头 , 但是 用在[^xxxx] 就表示取反
 * $ : 以什么什么结尾
 * ^a[^a-z]  , a1  , aA , a3, 22
 *
 * 校验非汉字
 * [^\u4e00-\u9fa5]
 *
 * Pattern : 创建正则表达式对象,能做一些基本的简单操作
 *         
 *     三大功能 :
 *         验证 : boolean matchers(String regex);
 *         拆分 : String[] split(String regex);
 *         替换 : String replaceAll(String regex,String replacement);
 * 实际操作中,有时候我们嫌麻烦,也可以直接使用String里面的一些方法,比如 替换,拆分,验证String类中也有的

String regex = "";(双引号内放入验证条件)
String str = "";(双引号内放入需要验证的字符串)
//创建正则表达式
//引擎
Pattern pattern = Pattern.compile(regex);
//匹配器
Matcher matcher = pattern = pattern.matcher(str);
//三种匹配模式
//matches:全词匹配 XXX
//find:任意位置均可  .*XXX.*
//lookingAt :从前到后 XXX.*
// 全词匹配 , 等于写着 ^ 和 $
System.out.print(matcher.matches());
 //注意 : 一个匹配器对象(matcher) ,调用相同的方法可以连用,不建议混用
matcher = pattern.matcher(tel);
// 只要最前面的是符合条件的 就行
System.out.println(matcher.lookingAt());
matcher = pattern.matcher(tel);
// 任意位置符合条件 就行
System.out.println(matcher.find());

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值