Java:常用正则表达式

常用正则表达式

元字符

.匹配换行符外任意字符

\w匹配字母或数字或下划线或汉字

\s匹配任意空白符号

\d匹配数字

\b匹配单词的开始或结束

^匹配字符串的开始

$字符串的结束

eg:^\d\d\d$代表三位都是数字的字符串

​ ^\d{8}$代表8位数字的号码

反义字符

\W 匹配不是数字字母下划线和汉字的字符

\S 匹配不是空白符的字符

\D 匹配任意非数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除了x以外的任意字符

eg:

[^abcde]匹配所有除了abcde以外的字符

限定字符

*重复零次或多次

+重复一次或多次

?重复零次或多次

{n}重复n次

{n,}重复n次或更多次

eg:^\d{8,11}$至少重复8-11次数字

转义字符

\

eg:

\.

\*

\\

字符分枝

用"|"将正则表达式分割可以匹配两种不同的字符串情况

eg:\d{3}-\d{8}|\d{4}-\d{8},可以匹配两种不同长度区号的固定电话

字符分组

用于将多个字符重复

使用小括号进行分组

eg;(\d\w){3} 重复匹配三次\d\w

贪婪匹配和懒惰匹配

正常使用正则表达式时,都是匹配尽量多的字符
如果需要匹配尽量少的字符,需要用到懒惰匹配

*?重复任意次数,但尽可能少重复

+?重复一次或更多次,但尽可能少重复

??重复零次或1次,但尽可能少重复

{n,m}?重复n到m次,但尽可能少重复

{n,}?重复n次以上,但尽可能少重复

后向引用

重复搜索前面某个分组匹配的文本

使用小括号指定一个子表达式后,匹配这个子表达式的文本,并将其按顺序记录组号,第一个为1第二个为2

eg:\b(\w+)\b\s+\1\b用以匹配重复单词

零宽断言

查找前后满足一定条件的表达式进行匹配

(?=exp)零宽度正预测先行断言,即匹配后面满足=exp的表达式

(?<=exp)零宽度正回顾后发断言,即匹配前面满足=exp的表达式

常用的实用正则表达式整理 :

只能输入n位的数字:"^“d{n}$”。

只能输入至少n位的数字:"^“d{n,}$”。

只能输入m~n位的数字:。"^“d{m,n}$”

只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”。

只能输入有两位小数的正实数:“1+(.[0-9]{2})?$”。

只能输入有1~3位小数的正实数:“2+(.[0-9]{1,3})?$”。

只能输入非零的正整数:“^”+?[1-9][0-9]*$"。

只能输入非零的负整数:“^”-[1-9][]0-9"*$。

只能输入长度为3的字符:“^.{3}$”。

只能输入由26个英文字母组成的字符串:“3+$”。

只能输入由26个大写英文字母组成的字符串:“4+$”。

只能输入由26个小写英文字母组成的字符串:“5+$”。

只能输入由数字和26个英文字母组成的字符串:“6+$”。

只能输入由数字、26个英文字母或者下划线组成的字符串:"^“w+$”。

验证用户密码:"7"w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

验证是否含有^%&’,;=?KaTeX parse error: Expected group after '^' at position 9: ""等字符:"[^̲%&’,;=?“x22]+”。

只能输入汉字:“8{0,}$”

验证Email地址:“/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/”。

验证InternetURL:"^http://([“w-]+”.)+["w-]+(/[“w-./?%&=]*)?$”。

验证电话号码:“^(”("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正确格式为:“XXX-XXXXXXX”、“XXXX- XXXXXXXX”、“XXX-XXXXXXX”、“XXX-XXXXXXXX”、“XXXXXXX"和"XXXXXXXX”。

验证身份证号(15位或18位数字):"^"d{15}|“d{18}$”。

验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:“01"~"09"和"1"~"12”。

验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;“01"~"09"和"1"~"31”。


  1. 0-9 ↩︎

  2. 0-9 ↩︎

  3. A-Za-z ↩︎

  4. A-Z ↩︎

  5. a-z ↩︎

  6. A-Za-z0-9 ↩︎

  7. a-zA-Z ↩︎

  8. "u4e00-"u9fa5 ↩︎

你可能感兴趣的:(JAVA基础,正则表达式)