Java用String封装的方法使用正则表达式

正则中的特殊字符

特殊用法的匹配符

特殊字符说明
\用于转义下一个字符,或指定八进制、十六进制字符。如果需匹配\字符,请用 \\
()表示子表达式,标记子表达式的开始和结束位置。要匹配这些字符,请使用(和)
[]表示枚举或“并”运算,用于确定中括号表达式的开始和结束位置。要匹配这些字符,请使用[和]
-表示范围,例如[a-f]表示 a~f 范围内的任意字符

字符匹配符

特殊字符说明
.匹配除换行符\n之外的任何单字符。要匹配.字符本身,请使用 \.
\d匹配 0~9 的所有数字,(d 是 digit 的意思,代表数字)
\D匹配非数字
\s匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等,(s 是 space 的意思,代表空白)
\S匹配所有的非空白字符
\w匹配所有的单词字符,包括 0~9 所有数字、26 个英文字母和下划线_ (w 是 word 的意思,代表单词)
\W匹配所有的非单词字符
X字符x(x 可代表任何合法的字符)
\cxx 对应的的控制符。例如,\cM匹配 Ctrl-M。x 值必须为 A~Z 或 a~z 之一
\0mnn八进制数 0mnn 所表示的字符
\xhh十六进制值 0xhh 所表示的字符
\uhhhh十六进制值 0xhhhh 所表示的 Unicode 字符
\t制表符(“\u0009”)
\n新行(换行)符(‘\u000A’)
\r回车符(‘\u000D’)
\f换页符(‘\u000C’)
\a报警(bell)符(‘\u0007’)
\eEscape 符(‘\u001B’)

次数匹配符

特殊字符说明
*指定前面子表达式可以出现零次或多次。要匹配 * 字符本身,请使用 \*
+指定前面子表达式可以出现一次或多次。要匹配 + 字符本身,请使用 \+
?指定前面子表达式可以出现零次或一次。要匹配 ?字符本身,请使用 \?
{}用于标记前面子表达式的出现频度,如{n}表示出现n次,{n,}表示出现n次以上,{n,m}表示最少出现 n 次,最多出现 m 次。要匹配这些字符,请使用 \{ 和 \}

边界匹配符

特殊字符说明
^匹配一行的开头。要匹配 ^ 字符本身,请使用 \^
$匹配一行的结尾。要匹配 $ 字符本身,请使用 \$
\b单词的边界
\B非单词的边界
\A输入的开头
\G前一个匹配的结尾
\Z输入的结尾,仅用于最后的结束符
\z输入的结尾

运算匹配符

特殊字符说明
()表示子表达式,标记子表达式的开始和结束位置。要匹配这些字符,请使用(和)
[]表示枚举或“并”运算,用于确定中括号表达式的开始和结束位置。要匹配这些字符,请使用[和]
-表示范围,例如[a-f]表示 a~f 范围内的任意字符
^表示求否,例如[^abc]表示非 a、b、c 的任意字符
&&表示“与”运算,[a-z&&^bc]]是 a~z 范围内的所有字符,除 b 和 c 之外
|指定两项之间任选一项。如果要匹配丨字符本身,请使用 |

正则表达式用法

简单的正则表达式

        //通用格式:(匹配的字符串  该字符串对应的数量)
        //匹配字符串 "aa"
        String regx = "a{2}";
        //匹配所有字符串均为数字,即数字出现的频率为1次或多次(\d+)
        //由于该正则表达式写在字符串中,字符串需要转义‘\’,故写为"\\d+"
        String regx1 = "\\d+";
        //匹配前两位为a,后面的均为数字的字符串
        String regx2 = "a{2}\\d+";

String封装的正则表达式

//boolean matches(String regex),字符串内容和正则表达式完全匹配
        System.out.println("aa.matches()" +"正则结果"+ "aa".matches("a{2}"));
        //String replaceFirst(String regex, String replacement),替换第一处符合正则表达式的子串
        //将字符串中第一个‘a’替换为‘-’
        System.out.println("aac.replaceFirst()" +"正则结果"+ "aac".replaceFirst("a","z"));
        //String replaceAll(String regex, String replacement),替换所有符合正则表达式的子串
        //将字符串中所有的‘a’替换为‘-’
        System.out.println("aac.replaceAll()" +"正则结果"+ "aac".replaceAll("a","z"));
        //String[] split(String regex),根据正则表达式匹配的内容,分割成多个子串,不包含匹配到的内容
        String[] split = "苹果*3".split("\\*");
        System.out.println("苹果*3.split()输出开始");
        for (String str:split){
            System.out.println(str);
        }
        System.out.println("苹果*3.split()输出结束");

输出结果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值