JAVA中的正则表达式

一、正则表达式的构成

1、字符类:

①[abc]: a、b、c

②[^abc]: 任何字符,除了a、b、c

③[a-zA-Z]: a到z或A到Z,两头的字母包含在内(范围)

2、预定义字符类

① .   : 任何字符

②\d  : 数字: [0-9]

③\D :非数字:[^0-9]

④\s  :空白字符:[ \t\n\x0B\f\r]

⑤\S :非空白字符:[^\s]

⑥\w :单词字符:[a-zA-Z_0-9]

⑦\W:非单词字符:[^\w]

3、POSIX字符集(仅US-ASCII)

①\p{Lower} 小写字母字符:[a-z]

②\p{Upper} 大写字母字符:[A-Z]

③\p{ASCII} 所有ASCII:[\x00-\x7F]

④\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]

⑤\p{Digit} 十进制数字:[0-9]

⑥\p{Alnum} 字母数字字符:[\p{Alpha}\p{Dight}]

⑦\p{Punct} 标点符号:!"#$%'()*+,-./:;<=>?@[]^_`{|}~

⑧\p{Blank} 空格或制表符:[\t]

4、边界匹配符

①^ :行的开头

②$ :行的结尾

5、Greed数量词

①X? :X,一次或一次也没有

②X* :X,零次或多次

③X+ :X,一次或多次

④X{n} : X,恰好n次

⑤X{n,} :X,至少n次

⑥X{n,m}: X,至少n次,但是不超过m次

6、Logical 运算符

①XY :X后跟Y

②X|Y :X或Y

③(X):X,作为捕获组

7、特殊构造(非捕获)

(?:X)  X,作为非捕获组

  (?=X)  X,通过零宽度的正 lookahead

  (?!X)    X,通过零宽度的负 lookahead

  (?<=X) X,通过零宽度的正 lookbehind

  (?<!X)  X,通过零宽度的负 lookbehind

  (?>X)   X,作为独立的非捕获组


二、常见的正则表达式

  • 验证用户名和密码,要求第一个字必须为字母,一共6~16位字母下划线组成:(^[a-zA-Z]\w{5-15}$)
  • 验证电话号码:xxx/xxxx-xxxxxxx/xxxxxxxx:(^(\d{3-4})\d{7,8}$)
  • 验证手机号:(^(13[0-9]|14[5|7]15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$)
  • 验证身份证:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
  • 验证Email地址:(^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$)
  • 只能输入由数字和26个英文字母组成的字符串:(^[A-Za-z0-9]+$)
  • 数字或小数:(^[0-9]+(.[0-9]+){0,1}$)
  • 中文字符的正则表达式:([\u4e00-\u9fa5])
  • 金额校验(非零开头的最多带两位小数的数字):(^([1-9][0-9]*)+(.[0-9]{1,2})?$)
  • IPV4地址:(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华不在意

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值