Java正则工具类:字母数字下划线、数据库url校验等


前言

本文内容观摩的是其他作者的代码,在基础上增加修改了一些。
参考原文地址:java用正则表达式


提示:以下是本篇文章正文内容,下面案例可供参考

一、正则基础语法

字符描述
^匹配输入字符串的【开始】位置。(要匹配 ^ 字符本身,请使用 [^])
$匹配输入字符串的【结尾】位置
*匹配前面的子表达式【零次】或【多次】。
+匹配前面的子表达式【一次】或【多次】。
?匹配前面的子表达式【零次】或【一次】。(等价于 {0,1})
{n,m}匹配前面的子表达式出现【最少n次】,【最多m次】。
--
.任意字符
[0-9]匹配数字0-9
[a-zA-Z]匹配字母
[a-zA-Z0-9]匹配字母或数字
[\u4e00-\u9fa5]匹配中文
--
(cat竖线dog)匹配cat或dog

二、正则工具类

直接上代码

package com.zdsoft.datafactory.common;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StrValidate {

    // 纯数字
    private static String DIGIT_REGEX = "[0-9]+";
    // 含有数字
    private static String CONTAIN_DIGIT_REGEX = ".*[0-9].*";
    // 纯字母
    private static String LETTER_REGEX = "[a-zA-Z]+";
    // 包含字母
    private static String CONTAIN_LETTER_REGEX = ".*[a-zA-z].*";
    // 纯中文
    private static String CHINESE_REGEX = "[\u4e00-\u9fa5]";
    // 仅仅包含字母和数字
    private static String LETTER_DIGIT_REGEX = "^[a-z0-9A-Z]+$";
    private static String CHINESE_LETTER_REGEX = "^[\u4e00-\u9fa5a-zA-Z-z]+";
    private static String CHINESE_LETTER_DIGIT_REGEX = "^[a-z0-9A-Z\u4e00-\u9fa5]+$";
    private static String CHINESE_LETTER_Num_REGEX = "^[\u4e00-\u9fa5a-zA-Z-z0-9_]+";
    private static String eng = "^[a-zA-Z][a-zA-Z0-9_]*$";
    private static String noSpace = "\\s*";
    // JDBC:url校验
    private static String JDBC_REGEX = "^jdbc:mysql://[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}:[0-9]{1,5}[/][a-zA-Z-z0-9_]{1,63}";

    /**
     *  验证数据库连接信息URL
     * @param passengerName
     * @return
     */
    public static boolean checkDatabaseUrls(String passengerName) {
        Pattern pattern = Pattern.compile(JDBC_REGEX);
        Matcher matcher = pattern.matcher(passengerName);
        if (matcher.matches()) {
            //符合
            return true;
        } else {
            //不符合
            return false;
        }
    }

    /**
     * 判断字符串是否仅含有数字和字母
     * @param str
     * @return
     */
    public static boolean isLetterDigit(String str) {
        return str.matches(LETTER_DIGIT_REGEX);
    }
    /**
     * 是否为汉字,不包括标点符号
     * @param con
     * @return true 是汉字
     */
    public static boolean isChinese(String con) {
        Pattern pattern = Pattern.compile(CHINESE_REGEX);
        for (int i = 0; i < con.length(); i = i + 1) {
            if (!pattern.matcher(
                    String.valueOf(con.charAt(i))).find()) {
                return false;
            }
        }
        return true;
    }
    /**
     * 用正则表达式判断字符串中是否
     * 仅包含英文字母、数字和汉字
     * @param str
     * @return
     */
    public static boolean isLetterDigitOrChinese(String str) {
        return str.matches(CHINESE_LETTER_DIGIT_REGEX);
    }
    /**
     * 可包含汉字和字母,无其它字符
     * @param passengerName
     * @return
     */
    public static boolean checkChineseLetter(String passengerName) {
        Pattern pattern = Pattern.compile(CHINESE_LETTER_REGEX);
        Matcher matcher = pattern.matcher(passengerName);
        if (matcher.matches()) {
            //不包含特殊字符
            return true;
        } else {
            //包含了特殊字符
            return false;
        }
    }

    /**
     * 可包含汉字、字母、数字、下划线,无其它字符
     * @param passengerName
     * @return
     */
    public static boolean checkChineseLetterAndNum(String passengerName) {
        Pattern pattern = Pattern.compile(CHINESE_LETTER_Num_REGEX);
        Matcher matcher = pattern.matcher(passengerName);
        if (matcher.matches()) {
            //不包含特殊字符
            return true;
        } else {
            //包含了特殊字符
            return false;
        }
    }

    /**
     * 可包含字母、数字、下划线,无其它字符
     * @param passengerName
     * @return
     */
    public static boolean checkEngLetter(String passengerName) {
        Pattern pattern = Pattern.compile(eng);
        Matcher matcher = pattern.matcher(passengerName);
        if (matcher.matches()) {
            //不包含特殊字符
            return true;
        } else {
            //包含了特殊字符
            return false;
        }
    }

    /**
     * 空格检验
     * @param passengerName
     * @return
     */
    public static boolean checkSpace(String passengerName) {
        Pattern pattern = Pattern.compile(noSpace);
        Matcher matcher = pattern.matcher(passengerName);
        if (matcher.matches()) {
            //不包含特殊字符
            return true;
        } else {
            //包含了特殊字符
            return false;
        }
    }


}


总结

冲。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值