栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA常用正则表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA常用正则表达式

@[目录]

一. 常用正则公式 用户名

支持中文(长度:2-7)或英文(长度:4-14),不可以_开头或结尾。
示范:
true
成龙 、成龙A 、 A成龙 、 成龙01 、1号成龙 、 成_龙 、成龙大哥就是牛
chenglong 、cheng_long 、ChengLong1
fales
1111 、龙 、成龙大哥就是nb 、_成龙 、成龙 _ 、 cheng-long 、CL

@Pattern(regexp = "^(?!_)(?!.*?_$)(?!^\d+$)(?!\w{3})([\w\u4e00-\u9fa5]{2,7}|\w{4,14})$",
            message = "支持中文(长度:2-7)或英文(长度:4-14),不可以_开头或结尾。")
    private String username;
用户密码

密码长度8-30字符,必须包含大小写字母、数学和特殊字符
示范:
true
Cheng123- 、QWERqwer123= 、ChengLong1* 、zxcZXC12 、123qw.eQ 、
fales
zxcvbnma 、12345678 、ZXCVBASD、1234ZXCV、1234zxcv、1234****

@Pattern(regexp = "^(?![0-9]+$)(?![^0-9]+$)(?![a-zA-Z]+$)(?![^a-zA-Z]+$)(?![a-zA-Z0-9]+$)[a-zA-Z0-9\S]{8,30}$"
            , message = "密码长度8-30字符,必须包含大小写字母、数学和特殊字符")
    private String passwor

说明:

手机号

可以有 +86 或0086 的区号后面接n个空格,第一位必须是1,第二位必须是[34578]中的一个,后九位是任意数字
示范:
true
13701245215 、+86 13701245481 、0086 18515487845 、 +86 17587454875
fales
12712467854 、+8613701245481 、008618515487845

@Pattern(regexp = "(\+86|0086)?\s*1[34578]\d{9}$")
    private String phone
邮箱
  @Email(message = "请输入正确的邮箱地址")
    private String email
身份证

前17位数字,最后1位是数字或者X
示范:
true
310612199907153315 、31061219990715321X
fales
31061219990715321x

    @Pattern(regexp = "^(\d{17})([0-9]|X)$"
    private String idNumber
二. 正则符号说明 备选字符集

说明:规定某一位字符可用的备选字符的集合
语法:[可选字符列表]

强调:

1. 无论备选字符集包含多少字符,只能选1
2. 必须选1个!
[ ]

比如:
6位数字的密码
[0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]

简化:1. 当备选字符连续时,可用-表示范围的区间
比如:[0123456789]–>[0-9]

[0-9][0-9][0-9][0-9][0-9][0-9]

[123]-->只能是1、2、中的一个
[a-z]-->1位小写字
[A-Z]-->1位大写字
[A-Za-z]-->1位字母,大小写都
[0-9a-zA-Z]-->1位字母或数字都

反选:[^不能选的字符列表]

比如:[^47]

强调:^作“除了”使用时,只能放在开头

预定义字符 集 d

说明:预定义字符集,为常用的字符集专门提供的简化写法!
用法:d 表示 [0-9] --> 1位数字

w

w 表示 [0-9a-zA-Z_] --> 1位字母,数字或_

s

s 表示1位空字符:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。

.

. 表示除换行回车外的任何一个字符

比如:
“a.[0-9]”:表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;
“^.{3}$”:表示有任意三个字符的字符串(长度为3个字符)

t

t 表示 一个制表符

预定义字符的反义

说明:预定义字符的大写形式都是小写的反义

D

表示1位非数字字

S

表示任意非空白字符。等价于[^fnrtv]。

v

表示一个垂直制表符

n

表示一个换行符

r

表示一个回车符

数量词

说明:规定前一个字符集可出现的次数

{ }

用法:

{n} : 表示必须出现 n 次数
{n,m} : 表示最少出现 n 次,最多出现 m 次
{n,} : 表示至少出现n次,多了不限制

*

表示有没有都行,次数不限,相当于 {0,}

+

表示至少1次,最多不限制,相当于 {1,}

?

表示有没有都行,最多1次,相当于 {0,1}

特殊字 ^

表示必须以表达式的规则为开头

$

表示必须以表达式的规则为结尾
提示:
在规范的正则表达式中,要求必须以 ^ 开头以 $ 结尾,表示从头到尾完整匹配

如:
^d{6}$——从头到尾必须只能是6位数字
1234567

\

转义符,表示
用法:在Java中 你在写正则时,想用 d 就需要写成 \d

(?= 表达式)

先判断字符串是否满足表达式的要求
何时使用:只要正则中出现类似“而且”

比如:
4位数字,但是不能包含4和7
(?=[^47]$) 是否由除了4,7之外的字符组成

(?! 表达式)

先检查字符串是否不满足表达式要求

比如

  1. 不能都由小写字母和大写字母组成
    (?![a-zA-Z]+$)
  2. 不能以_开头和结尾
    ^(?!)(?!.*?$)
|

表示左右两正则表达式选其一

比如
身份证最后一位可能是数字或X
^(d{17})([0-9]|X)$

u4e00-u9fa5

表示中文


参考文章:正则表达式知识详解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号