Java

作者: JS丶H2P | 来源:发表于2018-03-27 14:56 被阅读0次

    正则表达式

    推荐一个在线检测工具:在线正则表达式测试
    【这个工具中写入的正则表达式,'\d'无需写为'\\d',而在 Java 程序中,需写为'\\d'】
    内容参考:
    Java中的正则表达式

    环境:jdk 1.8
    验证使用的正则表达式:regex
    用于匹配验证的字符串:strTest
    

    基础知识

    []:任何在[]中的内容都是一个可以被匹配字符,只匹配一个字符
    // [a-z]:表示匹配任意一个小写字母
    // [a-zA-Z]:表示匹配任意一个大写或小写的字母
    [^a-z]:表示匹配不属于 a-z 的字符
    \s:匹配空字符串,空格 / tab / 回车/ 换页
    // 使用的时候得输入:\\s,\ 是转义字符,但本身也需要被转义
    \S:匹配非空字符串,相当于 [^\s]
    \d:匹配数字,相当于 [0-9]
    \D:匹配非数字
    \w:匹配词字符,相当于 [a-zA-Z0-9],不能表示 中文 / 空格 / 换行
    \W:匹配非词字符,可以用于匹配中文
    
    ():捕获组:[(ab)c] 表示 ab 或 c
    ^:表示从开头匹配,如果匹配成功,表示 strTest 以符合 regex 的形式开头
    $:表示匹配到结尾;如果匹配成功,表示 strTest 以符合 regex 的形式结尾
    // 同时使用时表示对 strTest 整体匹配
    
    *:前面字符或组匹配 0 个或多个
    +:前面字符或组匹配 1 个或多个
    ?:前面字符或组匹配 0 个或 1 个
    {n}:前面字符或组的数量是 n 个
    {n,}:前面字符或组的数量至少 n 个
    {n,m}:前面字符或组数量至少 n 个,最多 m 个
    

    案例解析

    // java 中使用 regex 验证某一个字符串
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class test{
        public static void main(String[] args) {
            String regex = "^[0-9]{2}\\d\\s\\w{3}\\W$";
            String strTest = "989 k9W好";
            boolean testResult = false;
    
            // 使用 String 类中的方法判断
            testResult  = strTest.matches(regex);
    
            // 使用 Pattern 类中的方法判断
            testResult  = Pattern.matches(regex, strTest);
    
             // Matcher类中的方法
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(strTest);
            testResult  = matcher.matches();
        }
        // 最后 testResult 值为 true
    }
    
    <!-- JavaScript 中使用 regex 验证某一个字符串  -->
    <script>
        var regex = /^*$/;
        if( regex.test(strTest) ){
            ... 
        }
        <!-- 一个用户验证 email 的 regex -->
        var emailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+.([a-z.])+$/;
    </script>
    

    相关文章

      网友评论

          本文标题:Java

          本文链接:https://www.haomeiwen.com/subject/fkqscftx.html