xiejun
2024-11-01 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a
Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/RegexUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
/*
 *      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;
   }
}