Java正则工具类字母数字下划线、数据库url校验等
前言
一、正则基础语法
字符 | 描述 |
---|---|
^ | 匹配输入字符串的【开始】位置。(要匹配 ^ 字符本身,请使用 [^]) |
$ | 匹配输入字符串的【结尾】位置 |
* | 匹配前面的子表达式【零次】或【多次】。 |
匹配前面的子表达式【一次】或【多次】。 | |
? | 匹配前面的子表达式【零次】或【一次】。(等价于 {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;
}
}
}
总结
冲。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgekcgf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01