/* * Copyright (c) 2018-2028, DreamLu All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: DreamLu 卢春梦 (596392912@qq.com) */ package org.springblade.core.tool.utils; import org.springframework.lang.Nullable; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式工具 * * @author L.cm */ public class RegexUtil { /** * 用户名 */ public static final String USER_NAME = "^[a-zA-Z\\u4E00-\\u9FA5][a-zA-Z0-9_\\u4E00-\\u9FA5]{1,11}$"; /** * 密码 */ public static final String USER_PASSWORD = "^.{6,32}$"; /** * 邮箱 */ public static final String EMAIL = "^\\w+([-+.]*\\w+)*@([\\da-z](-[\\da-z])?)+(\\.{1,2}[a-z]+)+$"; /** * 手机号 */ public static final String PHONE = "^1[3456789]\\d{9}$"; /** * 手机号或者邮箱 */ public static final String EMAIL_OR_PHONE = EMAIL + "|" + PHONE; /** * URL路径 */ public static final String URL = "^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})(:[\\d]+)?([\\/\\w\\.-]*)*\\/?$"; /** * 身份证校验,初级校验,具体规则有一套算法 */ public static final String ID_CARD = "^\\d{15}$|^\\d{17}([0-9]|X)$"; /** * 域名校验 */ public static final String DOMAIN = "^[0-9a-zA-Z]+[0-9a-zA-Z\\.-]*\\.[a-zA-Z]{2,4}$"; /** * 编译传入正则表达式和字符串去匹配,忽略大小写 * * @param regex 正则 * @param beTestString 字符串 * @return {boolean} */ public static boolean match(String regex, String beTestString) { Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(beTestString); return matcher.matches(); } /** * 编译传入正则表达式在字符串中寻找,如果匹配到则为true * * @param regex 正则 * @param beTestString 字符串 * @return {boolean} */ public static boolean find(String regex, String beTestString) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(beTestString); return matcher.find(); } /** * 编译传入正则表达式在字符串中寻找,如果找到返回第一个结果 * 找不到返回null * * @param regex 正则 * @param beFoundString 字符串 * @return {boolean} */ @Nullable public static String findResult(String regex, String beFoundString) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(beFoundString); if (matcher.find()) { return matcher.group(); } return null; } }