正则表达式基础知识

一、基础知识:

\d:匹配数字,只匹配一次  data

\s:匹配空格,只匹配一次 space

\w:匹配数字字母下划线   [A-Za-z0-9_] 或中文及其组合  word

\D\S\W:非数字,非空格,非单词字符

. :匹配任意字符

* :前面字符重复0-N次

+ :前面字符重复1-N次

? :前面字符匹配0/1次

\ :转义字符

^ :规则开始   $:规则结束  ^\d表示必须以数字开头,\d$:必须以数字结束,py可以匹配'python',加上^py$:'py',整行匹配

\b[备选字符集]+\b:匹配一个以[备选字符集]组成的单词(\b比较特别各种符号空白开头结尾都可以匹配)

二、三对括号:

[] :字符集概念,表范围 匹配括号中的任何字符    [abc]匹配a/b/c任一,[a-g]匹配编码连续字符集a-g中一个

[^] :非[]    [^\n\0] 匹配任意除换行和结束字符的字符  \0空字符    空白符[\t\n\x0B\f\r]:不知准确性

 {}  :量词    匹配数量

    如果我想要匹配多个字符怎么办?难道要把一个备选字符集复制成N个吗?当然不用,这时量词就闪亮登场了。量词的语法是非常简单的。

规则:
  • [备选字符集]{min} :当中括号只有一个参数时表示完整匹配,[备选字符集]的字符一定要连续出现min次才会被选中,多了会截断,连续出现min*2次时会被选中两次。
  • [备选字符集]{min, }:当中括号只有一个参数还加了逗号时,表示只要[备选字符集]连续出现min次以上就会选中,而且不会截断,直到出现[备选字符集]以外的字符。
  • [备选字符集]{min, max}:当中括号有两个参数时表示最多匹配连续max次的[备选字符集],最少匹配连续min次的[备选字符集],比如a{1,3}匹配aaaaa的时候,第一次选中的是aaa,第二次选中的是aa而不是单个a,按照max优先原则。
    #### 简写:
  • [备选字符集]{0,1} => [备选字符集]?
  • [备选字符集]{0, } => [备选字符集]*
  • [备选字符集]{1, } => [备选字符集]+
    以后看到?*+就蒙圈的就先把那些特殊字符转为量词的标准写法吧

()   :分组group()

    用来多规则模糊匹配,要从某处获取一个IP地址,但不知道是IPv4还是IPv6,那么就可以用([IPv4的规则]|[IPv6的规则])来匹配,而不用分别写两个正则来匹配。

    对部分数据进行抽取,<title>(.*?)</title>这个正则表达式就会抽取标签之中的内容单独存放,而不用获取到元数据之后再做数据的二次清洗。


三、贪婪与非贪婪匹配

    正则默认贪婪匹配,匹配尽可能多的字符

>>> re.match(r'^(\d+)(0*)$', 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值