欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

正则表达式(Java),

来源: javaer 分享于  点击 11147 次 点评:265

正则表达式(Java),


正则表达式

介绍:实际应用中,我们经常会用到需要匹配、查找、替换、判断字符串的情况,正则表达式是解决这类问题的主要手段。正则表达式是一种字符串的语法规则,是一种可以用于模式匹配和替换的规则,主要用于文本和字符串处理。

1、元字符

元字符 写法 意义
. . 任何一个字符
\d \\d 0~9的任何一个数字
\D \\D 任何一个非数字字符
\s \\s 空格类字符,‘\t’、‘\n’、‘\x0B’、‘\f’、‘\r’
\S \\S 非空格类字符
\w \\w 可用于标识符的字符(不包含美元符号)
\W \\W 不能用于标识符的字符
\p{Lower} \\p{Lower} <小写字母[a-z]
\p{Upper} \\p{Upper} 大写字母[A-Z]
\p{ASCII} \\p{ASCII} ASCII字符
\p{Alpha} \\p{Alpha} 字母
\p{digit} \\p{digit} 数字字符[0-9]
\p{Alnum} \\p{Alnum} 字母或数字
\p{Punct} \\p{Punct} 标点符号
\p{graph} \\p{graph} 可视字符,\p{Alnum}\p{Punct}
\p{Print} \\p{Print} 可打印字符,\p{graph}
\p{Blank} \\p{Blank} 空格或制表符
\p{Cntrl} \\p{Cntrl} 控制字符[\x00-\x1F\x7F]



例:使用正则表达式判断给定的字符串是否符合格式:大写字母+3个小写字符+3个数组

public class Main{ 
    public static void main(String[] args) {
        String regex = "\\p{Upper}\\p{Lower}\\p{Lower}\\p{Lower}\\d\\d\\d";

        String[] msg = {"ABCd001", "Abcd002"};

        for (int i = 0; i < msg.length; i++)
            System.out.println(msg[i] + (msg[i].matches(regex) ? "合法" : "不合法"));

    }
}

结果:


2、” [ ] ” 符

方括号元字符 含义
[abcde] 匹配a、b、c、d、e中的任意一个字符
[a-h] 匹配a-h之间的任意一个字符
[^fgh] 不与f、g、h中的任意一个字符匹配
a-d[m-p] 代表a-d,或m-p中的任何一个字符(并)
a-z&&[def] 代表d、e、f中的任意一个字符(交)
a-f&&[^bc] 代表a、d、e、f(差)

3、限定符

带限定符号的模式 含义
X? X出现0次或一次
X* X出现0次或多次
X+ X出现1次或多次
X{n} X出现n次
X{n,} X至少出现n次
X{n,m} X出现n至m次
XY X后跟Y
X | Y X或Y



例:通过正则表达式判断手机号是否合法
说明:手机号码前三位有13+任意数字,15+0、3、6~9任意一位,18+6、8、9任意一位;后8位为任意数字。

public class Main{ 
    public static void main(String[] args) {
        String regex = "(13\\d|15[036-9]|18[689])\\d{8}";

        String[] msg = {"987654321", "12345678901", "18612345678"};

        for (int i = 0; i < msg.length; i++)
            System.out.println(msg[i] + (msg[i].matches(regex) ? "合法" : "不合法"));

    }
}

结果:


ps:更复杂的还要多练习才能掌握哦 ^_^

相关文章

    暂无相关文章
相关栏目:

用户点评