加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式基础语法

发布时间:2020-12-14 06:40:35 所属栏目:百科 来源:网络整理
导读:【1】转义字符 一些不便书写的字符,采用在前面加 “/” 的方法。这些字符其实我们都已经熟知了。 还有其他一些在后边章节中有特殊用处的标点符号,在前面加”/” 后,就代表该符号本身。 比如: ^,$ 都有特殊意义,如果要想匹配字符串中 "^" 和 "$" 字符,

【1】转义字符

一些不便书写的字符,采用在前面加 “/” 的方法。这些字符其实我们都已经熟知了。

还有其他一些在后边章节中有特殊用处的标点符号,在前面加”/” 后,就代表该符号本身。

比如:^,$都有特殊意义,如果要想匹配字符串中"^" 和 "$" 字符,则表达式就需要写成 “/^” 和 “/$”。


【2】与 ‘多种字符’ 匹配

.(小数点):除了换行符(n)以外的任何一个字符;

/d :任意一个数字,0~9 中的任意一个;

/D:匹配所有的非数字字符;

/w:任意一个字母或数字或下划线,也就是A~Z,a~z,0~9,_ 中任意一个;

/W:匹配所有的字母、数字、下划线以外的字符;

/s:包括空格、制表符、换页符等空白字符的其中任意一个;

/S 匹配所有非空白字符("/s" 可匹配各个空白字符);

/b:匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符;

/B:匹配非单词边界,即左右两边都是 "/w" 范围或者左右两边都不是 "/w" 范围时的字符缝隙;

/xXX:编号在 0 ~ 255 范围的字符,比如:空格可以使用"/x20" 表示;

/uXXXX:任何字符可以使用 "/u" 再加上其编号的4 位十六进制数表示,比如:"/u4E2D"

当然 ,你也可以自定义能够匹配 ‘多种字符’ 的表达式

[ab5@]    匹配 "a""b""5""@"
[^abc]    匹配 "a","b","c" 之外的任意一个字符
[f-k]     匹配 "f"~"k" 之间的任意一个字母
[^A-F0-3] 匹配 "A"~"F","0"~"3" 之外的任意一个字符

【3】特殊元字符

^:与字符串开始的地方匹配,不匹配任何字符;

$:与字符串结束的地方匹配,不匹配任何字符。


【4】修饰匹配次数的特殊符号

{n}:表达式重复n 次,比如:"/w{2}" 相当于 "/w/w""a{5}" 相当于 "aaaaa";

{m,n}:表达式至少重复m 次,最多重复n 次,比如:"ba{1,3}"可以匹配 "ba""baa""baaa";

{m,}:表达式至少重复m 次,比如:"/w/d{2,}"可以匹配 "a12","_456","M12344"...;

?:匹配表达式0 次或者1 次,相当于 {0,1},比如:"a[cd]?"可以匹配 "a","ac","ad";

+:表达式至少出现1 次,相当于 {1,},比如:"a+b"可以匹配 "ab","aab","aaab"...;

*:表达式不出现或出现任意次,相当于 {0,},比如:"/^*b"可以匹配 "b","^^^b"...

【5】Java正则校验

要求:字母、数字和特殊符号中的二者或二者以上。

@Test
    public void testReg(){
        String reg="^[0-9]+D+.*|D+d+.*$";
// String value = "!@#@!#45789A!#@!@#123dd123^^^^234dasdfasd32!@#@255.com255";
        String value = "#@@#$123";
        boolean matches = Pattern.matches(reg,value);
        System.out.println("是否匹配 :"+matches);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读