正则表达式 学习

1. 正则表达式(Regular Expression)


正则表达式是用来提高效率的。

常用的几个字符作用:

  • ^ 为匹配输入字符串的开始位置。
  • + 匹配一个或者多个内容。例如: [0-9] 匹配单个数字,[0-9]+匹配多个数字。
  • $ 为匹配输入字符串的结束位置。abc$匹配字母 abc 并以 abc 结尾。

使用了正则表达式可以更加灵活的操作一些内容。

2. 正则表达式语法: + ,* ,?


+ 号代表前面的字符必须至少出现一次(1次或多次):

  • 例如:itholm+es ,可以匹配 itholmes,itholmmmes等等。
  • 相当于把m+看成一块内容,匹配的有m,mm,mmm等等。

* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次):

  • 例如:itholm*es,可以匹配 itholes , itholmes,itholmmes等等。
  • 同理把m*看成一体,可以没有m,可以有一个m,可以有多个m等等。

? 问号代表前面的字符最多只可以出现一次(0次或1次):

  • 例如:itholm?es,就只能匹配itholes , itholmes。
  • 同样把m?看为一体,只能没有m,可以有一个m。

3. 正则表达式语法 […]


匹配 /[...]/g 中的所有字符:

  • 例如:[abc] , 匹配全部的a,b,c字符。

匹配除了 /[^...]/g 中字符的所有字符:

  • 例如:[^abc] , 匹配除了a,b,c字符的所有字符。

/[A-Z]/g 表示一个区间,匹配所有大写字母,/[a-z]/g 表示所有小写字母:

  • [A-Z]匹配所有的大写字符,[a-z]匹配所有的小写字符。

/./g 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]

  • \r是回车,前者使光标到行首,(carriage return)
  • \n是换行,后者使光标下移一格,(line feed)
  • \r 是回车,return \n 是换行

/[\s]/g/[\S]/g

  • \s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。

/\w/g 匹配字母、数字、下划线。等价于 /[A-Za-z0-9_]/g

  • 适用于登录场合等等。

4. 非打印字符


像\f,\n等等非打印字符,都可以通过正则表达式来查找。
在这里插入图片描述

5. 特殊字符


在这里插入图片描述

6. 限定符


在这里插入图片描述


需要注意格式:
举个例子: /[1-9][a-z][A-Z][0-9]*[a-z]*/g 解释如下:

上面匹配的内容:

  • 第一个字符1到9
  • 第二个字符a到z
  • 第三个字符A到Z
  • 第四个0到9,但是因为有* 所以是0到9以及后面多个数字(也是0-9的)。
  • 第五个a到z,同样也是有* 所以是a到z以及后面多个字符(也是a-z的)。

总结起来就是一一对应,注意特殊字符的含义!


设置0~99的两位数的正则表达式:

  • /[0-9]{1,2}/ 匹配[0-9]的一位数或者两位数。
  • 这种匹配方式的缺点是:只能匹配两位数字,而且可以匹配 0、00、01、10 99 的章节编号仍只匹配开头两位数字。

改进:

  • /[1-9][0-9]?/ 或者 /[1-9][0-9]{0,1}/, 这样就可以避免上面的内容了。

7. 贪婪和非贪婪


* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。
在这里插入图片描述

8. 定位符


在这里插入图片描述

9. 选择


用圆括号 () 将所有选择项括起来,相邻的选择项之间用 | 分隔。

() 表示捕获分组,() 会把每个分组里的匹配的值保存起来。

之后就是?=、?<=、?!、?<! 的使用。

https://www.runoob.com/regexp/regexp-syntax.html

10. 正则表达式 修饰符


在这里插入图片描述

11. 元字符 和 正则表达式的优先级


*元字符就是上面说到的一系列的字符,\ ,^ $,等等。

优先级越是在外面包裹的字符优先级越高。
在这里插入图片描述

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xupengboo

你的鼓励将是我创作最大的动力。

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

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

打赏作者

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

抵扣说明:

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

余额充值