正则表达式学习笔记

正则表达式的学习笔记

1.通配符
仅能匹配一个字符
“.yhton” 可匹配’python’,’+ython’,’ ython’;
但是无法匹配’cdython’,’aizbuython’

2.对特殊字符进行转义
例子:
‘python.org’可能会匹配到’pythonzorg’,但是在前面加上一个反斜杠,用’python\.org’就只能匹配到’python.org’了
注意,双斜杠是为了让解释器对其转义,可以使用原始字符串,r’python.org’

3.字符集
[pj]ython 仅仅可以匹配python和jython。
[a-zA-Z0-9] 匹配大小写字母和数字
[^abc] 匹配除abc外的任何字符

4.二选一和子模式
二选一用’|’,子模式放在()内
p(ython|erl) 匹配python和perl

5.可选模式和重复模式
通过在子模式后面加上问好,可将其指定为可选模式,即可包含可不包含

        r'(http://)?(www\.)?python\.org' 可匹配:
        http://www.python.org
        http://python.org
        www.python.org
        python.org

6.

  (pattern)* :pattern可匹配01或多次
  (pattern)+ :pattern可匹配1次或多次
  (pattern)? :pattern可匹配01次
  (pattern){m,n} :pattern可匹配m-n次

7.
[\b] 删除键(backspace)
\f 换页符号
\n 换行
\r 回车
\t 制表(tab键)
\v 垂直制表符
\d 数字字符[0-9]
\D 非数字字符[^0-9]
\w 大小写字母数字或下划线[a-zA-Z0-9_]
\W 非大小写字母数字或下划线[^a-zA-Z0-9_]
\s 任何一个空白字符[\f\n\r\t\v]
\S 任何一个非空白字符[^\f\n\r\t\v]

8.正则的贪婪与非贪婪模式
贪婪模式:尽可能多的匹配字符 * + {n, }
非贪婪模式:匹配尽肯能少点的字符*? +? {n, }?
字符: in <b>ab</b> and <b>cd</b>
正则(贪婪):<[Bb]>.*</[b]> 匹配到<b>ab</b> and <b>cd</b>
正则(非贪婪):<[Bb]>.*?</[b]> 匹配到<b>ab</b> 和 <b>cd</b>

9.向前查找
仅匹配不消费模式

文本:
http://123.123.123
ftp://123.123.123
https://123.123.123
正则:.+(?=:)
结果:http ftp    https
结果中虽然匹配到了:,但是未在结果中显示出来,就是所谓的仅匹配,不消费模式,显示:之前的匹配内容


匹配消费模式:
文本:
    http://123.123.123
    ftp://123.123.123
    https://123.123.123
正则:.+(:)
结果:http:    ftp:    https

10.向后查找:

    文本:
    abc:$3.2
    vfe:$66.45

    消费模式正则:
    \$[0-9.]+
    消费模式结果:
    $3.2  $66.45
    不消费模式正则:
    (?<=\$)[0-9.]6+
    不消费模式结果:
    3.2 66.45       

“`

11.嵌入条件
?匹配前一个字符或者表达式,如果让存在的话.
?=和?<=匹配前面或后面的文本
文本:
123-456-7890
(123)456-7890
(123)-456-7890
(123-456-7890
1234567890
123 456 7890

    正则:\(?\d{3}\)?-?\d{3}-\d{4}        #用\(?匹配一个可选的左括号   

    结果:
    123-456-7890
    (123)456-7890
    (123)-456-7890
    (123-456-7890   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值