当前位置: 首页 > news >正文

正则表达式

正则表达式通常用于匹配字符是否满足某一标准

比如我这边一个输入框,你要如何形容只能有数字?只能是大写拼音?

这就有了正则表达式

1.[]

[abc]:这个字符可以是a或b或c
[a-z] :表示任意一个小写字母
[a-zA-Z] :表示任意一个字母
[a-zA-Z0-9_] :表示任意一个数字字母下划线
[^abc] :该字符只要不是a或b或c

2.预定义字符

. :表示任意一个字符,没有范围限制
\d :表示任意一个数字,等同于[0-9]
\w :表示任意一个单词字符,等同于[a-zA-Z0-9_]–单词指字母/数字/_
\s :表示任意一个空白字符
\D :表示不是数字
\W :不是单词字符
\S :不是空白字符

3.量词

?:表示前面的内容出现0-1次
例如: [abc]? 可以匹配:a 或 b 或 c 或什么也不写
+:表示前面的内容最少出现1次
例如: [abc]+ 可以匹配:b或aaaaaaaaaa…或abcabcbabcbabcba…
但是不能匹配:什么都不写 或 abcfdfsbbaqbb34bbwer…
*:表示前面的内容出现任意次(0-多次)—匹配内容与+一致,只是可以一次都不写
例如: [abc]* 可以匹配:b或aaaaaaaaaa…或abcabcba…或什么都不写
但是不能匹配:abcfdfsbbaqbb34bbwer…
{n}:表示前面的内容出现n次
例如: [abc]{3} 可以匹配:aaa 或 bbb 或 aab 或abc 或bbc
但是不能匹配: aaaa 或 aad
{n,m}:表示前面的内容出现最少n次最多m次
例如: [abc]{3,5} 可以匹配:aaa 或 abcab 或者 abcc
但是不能匹配:aaaaaa 或 aabbd
{n,}:表示前面的内容出现n次以上(含n次)
例如: [abc]{3,} 可以匹配:aaa 或 aaaaa… 或 abcbabbcbabcba…
但是不能匹配:aa 或 abbdaw…

4.用于分组(),括号内的为一个整体

(abc){3} 表示abc整体出现3次. 可以匹配abcabcabc
但是不能匹配aaa 或abcabc

(abc|def){3} 表示abc或def整体出现3次.
可以匹配: abcabcabc 或 defdefdef 或 abcdefabc
但是不能匹配abcdef 或abcdfbdef

5.^符

当^在[]中表示集合的取反,比如[^abc]表示不含a、b、c的

当在外边的时候表示开始,比如^abc表示以abc为开头的字符,比如abc123

[^0-9]表示不为数字

6.特别情况

1.个别字符如. * +你要固定使用,比如在邮箱.com中,使用.需要转义为\.

2.$和^相反,匹配的是字符的结尾

3.断言:

  • (?=.*[a-z]):断言接下来的字符中至少有一个小写字母。
  • (?=.*[A-Z]):断言接下来的字符中至少有一个大写字母。
  • (?=.*\d):断言接下来的字符中至少有一个数字。
  • (?=.*[\W_]):断言接下来的字符中至少有一个特殊字符(非字母、数字或下划线,\W 匹配非单词字符,包括特殊字符)。

4.\b和\B匹配单词边界和非单词边界,比如

  • \bis\b 只匹配单词 "is",而不会匹配 "This" 中的 "is"。
  • \Bis\B 会匹配 "This" 中的 "is",因为 "is" 前后的字符("h" 和空格)都是非单词字符。

实力测试,看看学完上面的后下面给你的问题你能不能接住~

1.只能是数字

2.只能是大小写字母并且是6-10位

3.必须有大小写字母和数字且含有特殊字符,在8-12位

4.必须以1-5个小写字母开头,以@符号结尾,总长度不大于16个字符

答案在下面~~

——————————————————————————————----

————————————————————————————————————-

——————————————————————————————————————————

答案仅参考,不唯一

^\d+$

^[a-zA-Z]{6,10}$

(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_])[a-zA-Z\d\W_]{8,12}$


^[a-z]{1,5}.*@.{0,9}$
 

参考博文:正则表达式(常用版)-CSDN博客

相关文章:

  • 第一章 - 第10节- 计算机网络 - 课件
  • Windows OpenVPN的安装之服务器自动启动连接
  • Java17 --- SpringSecurity之OAuth2
  • c、c#、c++嵌入式比较?
  • electron录制工具-视频保存、编辑页面
  • 【Java04】引用变量数组初始化的内存机制
  • STL-常用容器
  • 10.Docker Compose容器编排
  • 学单片机前先学什么?
  • 树莓派4B_OpenCv学习笔记10:调整视频帧大小
  • Ubuntu 22.04 解决 firefox 中文界面乱码
  • 活动集锦 | 英码科技积极参与行业盛会,AI赋能城市数字化转型
  • Optional详解和常用API
  • 对LitJson开源插件的自定义尝试
  • EasyExcel文件导出,出现有文件但没有数据的问题
  • 揭开 Docker 容器的神秘面纱:深入理解容器原理
  • 【网络安全】【深度学习】【入侵检测】SDN模拟网络入侵攻击并检测,实时检测,深度学习【二】
  • JVM常用概念之线程本地分配缓冲区(ThreadLocal Allocation Buffer,TLAB)
  • 【双系统 安装ADB】
  • Oracle中select取值后的字符串处理
  • 路遇交通事故镇干部冲进火海救人,已申报见义勇为
  • 申活观察|人潮涌动成常态,豫园为何常来常新?
  • 对华小额包裹免税取消=更高价格+更慢物流,美消费者为关税政策买单
  • 过去24小时中美是否就关税问题进行过接触?外交部:没有
  • 伊朗港口爆炸致18死800余伤,三分之二伤者已出院
  • 民航局:中方航空公司一季度运输国际旅客同比大增34%