首页 > 其他分享 >正则表达式工具

正则表达式工具

时间:2023-08-18 18:22:18浏览次数:43  
标签:return 正则表达式 Character boolean static UnicodeBlock 工具 ub

package com.brainshare.common.utils;

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

/**
* 正则表达式工具
*/
public class RegexUtil {

private static final String REGEX_ID_CARD = "(^\\d{15}$)|(^\\d{17}([0-9]|X)$)";

/**
* 身份证号校验
* @param idCard
* @return
*/
public static boolean isValidIdCard(String idCard) {
return Pattern.matches(REGEX_ID_CARD, idCard);
}

public static boolean isRightChar(char c) {
return isChinese(c) || isWord(c);
}

/**
* 昵称校验(10字符内中英文)
* @param nickName
* @return
*/
public static boolean isValidNickName(String nickName){
if (StringUtils.isEmpty(nickName)){
return false;
}
char[] chars = nickName.toCharArray();
Integer length=0;
for (char aChar : chars) {
boolean chineseFlag = isChinese(aChar);
boolean wordFlag = isWord(aChar);
if (!chineseFlag&&!wordFlag){
return false;
}
if (chineseFlag){
length+=2;
}
if (wordFlag){
length+=1;
}
if (length>=10){
return false;
}
}
return true;
}


/**
* 校验某个字符是否是a-z、A-Z、_、0-9
*
* @param c 被校验的字符
* @return true 代表符合条件
*/
public static boolean isWord(char c) {
String regEx = "[a-zA-Z]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher("" + c);
return m.matches();
}

/**
* 判定输入的是否是汉字
*
* @param c 被校验的字符
* @return true 代表是汉字
*/
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
return true;
}
return false;
}
}

标签:return,正则表达式,Character,boolean,static,UnicodeBlock,工具,ub
From: https://www.cnblogs.com/wllzbky/p/17641253.html

相关文章

  • 使用appuploader工具发布证书和描述性文件教程
    使用APPuploader工具发布证书和描述性文件教程之前用AppCan平台开发了一个应用,平台可以同时生成安卓版和苹果版,想着也把这应用上架到AppStore试试,于是找同学借了个苹果开发者账号,但没那么简单,还要用到Mac电脑的钥匙串申请发布证书和上传ipa,可没有Mac,同学的大老远的也不方便拿过......
  • 开源.NetCore通用工具库Xmtool使用连载 - 正则表达式篇
    【Github源码】《上一篇》详细介绍了Xmtool工具库中的日期时间类库,今天我们继续为大家介绍其中的正则表达式类库。在日常的软件开发过程中,每个人都会或多或少的遇到各种各样需要校验数据格式的需求,有些格式是和具体业务逻辑相关;而有些格式是业界标准,在任何系统和功能中都一致通用......
  • 数据时代的引擎:BI工具和数据可视化助力企业腾飞
    在当今数据驱动的时代,企业越来越需要深入了解自身运营情况,以便做出明智的决策和战略规划。在这个背景下,商业智能(BusinessIntelligence,简称BI)工具和数据可视化技术逐渐崭露头角,成为企业成功的关键因素之一。 BI工具是现代企业管理的得力助手,它们不仅能够帮助企业从庞杂的数据中......
  • Java 工具类库:Hutool使用说明
    Hutool是什么Hutool是一个Java工具包类库,它可以对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Utils工具类。Hutool即是Hu(谐音“糊涂”)+tool,前者致敬作者“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的......
  • Visual Studio (VS)2017开发工具下载和安装教程
    MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。是目前最流行的Windows平台应用程序的集成开发环境。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。软件获取: www.momorj.com/?......
  • 正则表达式
    正则表达式概述正则表达式是一种用于匹配和处理文本模式的工具。它可以在文本中搜索、替换、分割和提取符合特定模式的字符串。使用正则表达式时,您可以根据需要构建适合的模式,然后将模式应用到目标文本中进行匹配和处理。正则表达式在文本处理、数据验证、文本分析等方面有着广......
  • TedNet:一个用于张量分解网络的Pytorch工具包
    摘要张量分解网络(TensorDecompositionNetworks,TDNs)因其固有的紧凑架构而流行。为了给更多的研究人员提供一种灵活的方式来利用TDNs,我们提出了一个名为TedNet的Pytorch工具包。TedNet实现了5种张量分解(即,CANDECOMP/PARAFAC(CP)、Block-TermTucker(BTT)、Tucker-2、TensorTrain(TT)和......
  • 【工具类】JacksonUtils
     packagecom.ryxx.util;importcom.fasterxml.jackson.annotation.JsonInclude;importcom.fasterxml.jackson.core.JsonParser;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.core.type.TypeReference;importcom.faste......
  • PHP正则表达式匹配教程
    一、什么是正则表达式正则表达式是一种用于搜索、匹配、替换某种文本的字符串模式,常用于处理文本数据、校验输入数据等。在PHP中,可以使用preg系列函数(preg_match、preg_replace等)处理正则表达式。二、正则表达式语法正则表达式语法包含了一些特定的字符和语法规则,常用的语法规则......
  • shell 学习之文本处理工具
    视频:07_小工具使用diff【正常模式】_哔哩哔哩_bilibili1.grep 2.cut 3.sort  4.uniq 5.tee从标准输入读取并写到标准输出和文件,即双向覆盖重定向(屏幕输出/文本输入)。 6.diff 逐行比较文件的不同。 语法:diff[选项]file1file2 1)正常显示......