asp.net网站项目建设,wordpress减少请求,建设免费网站登录网址,广州建设银行保安招聘网站Java String之正则表达式
导言
最近做项目时#xff0c;遇到了限制输入字符格式的问题#xff0c;采用了Java String的正则表达式#xff0c;下面针对正则表达式使用进行概述
正则表达式
正则表达式类似可以通俗的理解为字符模板#xff0c;通过符号的方式进行表述遇到了限制输入字符格式的问题采用了Java String的正则表达式下面针对正则表达式使用进行概述
正则表达式
正则表达式类似可以通俗的理解为字符模板通过符号的方式进行表述限制字符的格式。Java中的String类提供了支持正则表达式操作的方法包括matches()、replaceAll()、replaceFirst()、split()。此外Java中可以用Pattern类表示正则表达式对象它提供了丰富的API进行各种正则表达式操作。本文的重点讲述String类matches方法的使用其内部调用的是来自java.util.regex 包中Pattern类方法。 public boolean matches(String regex) {return Pattern.matches(regex, this);}关联类
java.util.regex 包主要包括以下三个类 Pattern 类 pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象你必须首先调用其公共静态编译方法它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
Matcher 类 Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
PatternSyntaxException PatternSyntaxException 是一个非强制异常类它表示一个正则表达式模式中的语法错误。
语法
正则表达式语法参考https://www.runoob.com/java/java-regular-expressions.html
实例
校验数字
数字^[0-9]*$
n位的数字^\d{n}$
至少n位的数字^\d{n,}$
m-n位的数字^\d{m,n}$
零和非零开头的数字^(0|[1-9][0-9]*)$
非零开头的最多带两位小数的数字^([1-9][0-9]*)(.[0-9]{1,2})?$
带1-2位小数的正数或负数^(\-)?\d(\.\d{1,2})?$
正数、负数、和小数^(\-|\)?\d(\.\d)?$
有两位小数的正实数^[0-9](.[0-9]{2})?$
有1~3位小数的正实数^[0-9](.[0-9]{1,3})?$
非零的正整数^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\?[1-9][0-9]*$
非零的负整数^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
非负整数^\d$ 或 ^[1-9]\d*|0$
非正整数^-[1-9]\d*|0$ 或 ^((-\d)|(0))$
非负浮点数^\d(\.\d)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0|0$
非正浮点数^((-\d(\.\d)?)|(0(\.0)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0|0$
正浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9])|([0-9]*[1-9][0-9]*))$
负浮点数^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9])|([0-9]*[1-9][0-9]*)))$
浮点数^(-?\d)(\.\d)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0|0)$校验字符
汉字^[\u4e00-\u9fa5]{0,}$
英文和数字^[A-Za-z0-9]$ 或 ^[A-Za-z0-9]{4,40}$
长度为3-20的所有字符^.{3,20}$
由26个英文字母组成的字符串^[A-Za-z]$
由26个大写英文字母组成的字符串^[A-Z]$
由26个小写英文字母组成的字符串^[a-z]$
由数字和26个英文字母组成的字符串^[A-Za-z0-9]$
由数字、26个英文字母或者下划线组成的字符串^\w$ 或 ^\w{3,20}$
中文、英文、数字包括下划线^[\u4E00-\u9FA5A-Za-z0-9_]$
中文、英文、数字但不包括下划线等符号^[\u4E00-\u9FA5A-Za-z0-9]$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
可以输入含有^%,;?$\”等字符[^%,;?$\x22]
禁止输入含有~的字符[^~\x22]参考链接 https://zhuanlan.zhihu.com/p/456224422 unicode字符范围