正则表达式基础笔记

正则是个很有深度的话题,虽然学习有段时间了,自感所学甚浅,所以本文只是做个读书笔记。

1.元字符(正则表达式的运算字符)

. 匹配除了换行符一以外的任意字符

? 匹配0次或者1次

* 匹配0次或者多次(贪婪模式,尽可能多的匹配)

+ 匹配1次或者多次(贪婪模式,尽可能多的匹配)

| 或 (比如 a|b ,匹配a或者b )

( 代表子模式的开始

) 代表子模式的结束

[ 代表集合的开始

] 代表结合的结束

{} 代表匹配次数,{2,3}表示匹配最少2次,最多3次

\ 转义字符(对正则的元字符进行转义,使它失去特殊意义)

下面2点需要特别说明

a,为了实现尽可能少的匹配,要用到懒惰模式(*? 或者 +?)。

b,[ ]集合中的元字符,代表的是字符(包含上面提到的元字符),代表的是字符本身的含义,没有特殊含义

2.位置字符

\b 用来匹配一个单词(字母数字或者下划线)的开始或者结尾

^ 代表字符串的开头

$ 代表字符串的结尾

ps: 请注意\b 和^,$的区别

3.其它字符

\d 匹配数字
\D 非数字
\w 字母数字和下划线
\W 非\w的字符
\s 空格
\S 非空格

4.回溯引用与子表达式

子表达式格式:()

回溯引用:只是用来引用模式里的子表达式,回溯引用从 \1 开始

举个栗子

待匹配字符串:
str = 'adb adb'

目标字符:
adb adb

正则表达式:
(adb)\s\1

5.前后查询(也叫零宽断言)

?= 正向前查询

?<= 正向后查询

?! 负正向前查询(与 ?= 要匹配的字符成非的关系)

?<! 负正向后查询(?<= 正向后查询的匹配字符成非的关系)

需要特别说明的是:(?:expr) 忽略捕获的子模式

6.python中的re模块,对元字符的影响

标志                含义
DOTALL, S         使 . 匹配包括换行在内的所有字符
IGNORECASE, I     使匹配对大小写不敏感
LOCALE, L         做本地化识别(locale-aware)匹配
MULTILINE, M      多行匹配,影响 ^ 和 $
VERBOSE, X        能够使用 REs 的 verbose 状态,使之被组织更清晰易懂

当M标志指定后, “^” 匹配字符串的开始和字符串中每行的开始。同样的, $ 元字符匹配字符串结尾和字符串中每行的结尾(直接在每个换行之前)。

写在最后:正则表达式没有绝对的正确与否,只是看适不适合,只有通过亲身实践才能正则掌握它

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值