java正则表达式

Posted 秋夜雨巷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java正则表达式相关的知识,希望对你有一定的参考价值。

String类三个和正则表达式相关的方法

public boolean matches(String regex) //判断字符串是否匹配给定的规则

举例:校验qq号码.
    1: 要求必须是5-15位数字
    2: 0不能开头
代码演示:
    String qq = "604154942";
    String regex = "[1-9][0-9]{4,14}";
    boolean flag2 = qq.matches(regex);

举例:校验手机号码
    1:要求为11位数字
2:第1位为1,第2位为3、4、5、7、8中的一个,后面9位为0到9之间的任意数字。
代码演示:
    String phone = "18800022116";
    String regex = "1[34578][0-9]{9}";
    boolean flag = phone.matches(regex);

public String[] split(String regex) //根据给定正则表达式的匹配规则,拆分此字符串

举例:分割出字符串中的的数字
代码演示:
String s = "18-22-40-65";
    String regex = "-";
    String[] result = s.split(regex);
代码演示:
    String s = "18 22 40 65";
    String regex = " ";
    String[] result = s.split(regex);

public String replaceAll(String regex,String replacement)  //将符合规则的字符串内容,全部替换为新字符串

举例:把文字中的数字替换成*
代码演示:
    String s = "Hello12345World6789012";
    String regex = "[0-9]";
    String result = s.replaceAll(regex, "*");

查找符合正则表达式的字符

Pattern编译正则表达式,Matcher类为封装结果

        String  str="匹配小数2.1,整数33,以及字母和数字的组合fsd535,但是.也可以匹配9点8,因为.代表任意字符?";
        String s = "\\\\d+.\\\\d+|\\\\w+";    //.代表任意字符,匹配项为  数字[1,]任意字符[1]数字[1,]或者字母和数字的组合[1,]
        Pattern  pattern= Pattern.compile(s);
        Matcher ma=pattern.matcher(str);

        while(ma.find()){
            System.out.println(ma.group());
        }

输出

小数正则表达式

([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])

邮箱 

[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\\\.[a-zA-Z_0-9]+)+

\\\\w+@\\\\w+(\\\\.\\\\w+)+

中文

[\\u4e00-\\u9fa5]+


以上是关于java正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

java 字符串替换

text 正则表达式片段

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

java正则表达式去除html标签

循环通过 python 正则表达式匹配