常用正则表达式记录

  1. 正整数:^[1-9]\d*$
  2. 手机号:^(1[3-9])\d{9}$  (号码段更新太快不做太具体的验证)
  3. 身份证:^[1-9]\d{9}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}(\d|[xX])$

身份证加地区和校验位的校验,Java代码为例:

    /**
     * 身份证地区、校验位校验
     * @param idCard 已经过正则验证的身份证号
     * @return
     */
    public static boolean validateIDNo(String idCard) {
        List<String> provinceCode = Arrays.asList("11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65", "71", "81", "82", "91");
        Integer[] factor = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
        String[] end_num = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
        if (!provinceCode.contains(idCard.substring(0, 2))) {
            return false;
        }
        char[] idCards = idCard.toCharArray();
        int sum = 0;
        for (int i = 0; i < idCards.length - 1; i++) {
            sum += Integer.parseInt(String.valueOf(idCards[i])) * factor[i];
        }
        int idCardMod = sum % 11;
        if (!end_num[idCardMod].toUpperCase().equals(idCard.substring(17).toUpperCase())) {
            return false;
        }
        return true;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中支持正则表达式的语法,可以使用正则表达式来进行模式匹配和替换操作。以下是一些常用的Oracle正则表达式语法: 1. 普通字符:正则表达式中的普通字符表示自身。例如,正则表达式 "hello" 匹配字符串 "hello"。 2. 字符类:可以使用字符类来匹配一组字符中的任意一个。例如,正则表达式 "[abc]" 匹配字符串 "a"、"b" 或 "c"。 3. 量词:量词可以用来指定一个字符或字符类出现的次数。例如,正则表达式 "a{3}" 匹配字符串 "aaa"。 4. 边界:边界用来指定一个单词的开始或结束位置。例如,正则表达式 "\bhello\b" 匹配字符串 "hello",但不匹配 "hello world"。 5. 分组:可以使用分组来将一些字符或字符类组合起来,形成一个子表达式。例如,正则表达式 "(abc)+" 匹配字符串 "abc"、"abcabc"、"abcabcabc" 等。 6. 反向引用:可以使用反向引用来引用前面的分组。例如,正则表达式 "(\d)\1" 匹配两个相同的数字。 7. 零宽度断言:零宽度断言可以用来指定一个位置,而不是一个字符。例如,正则表达式 "hello(?=world)" 匹配 "helloworld" 中的 "hello"。 以上是Oracle常用正则表达式语法,你可以根据需要选择使用。在Oracle中,可以使用REGEXP_LIKE、REGEXP_REPLACE和REGEXP_INSTR等函数来进行正则表达式操作。例如,可以使用下面的SQL语句来查询一个字符串中是否包含数字: ``` SELECT * FROM 表名 WHERE REGEXP_LIKE(字段名, '\d+'); ``` 其中,表名是你要查询的表的名称,字段名是你要查询的字段的名称。这个SQL语句会返回表中所有包含数字的记录

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值