正则简单使用

字符转义

正则中的特殊符号:

. * + ? ^ $ [] {} () | \

正则表达式如果匹配特殊字符需要加 \ 表达转义

raw字串 :
原始字符串对内容不解释转义,就表达内容原本意义,在字符串前加r

区别表达式目标字
正则表达式‘$\d+’“$10”
python“\$\d+”“$10”
raw字符串r"$\d+"“$10”

贪婪与非贪婪

贪婪模式: 正则表达式的重复匹配总是尽可能多的向后匹 配更多内容

 *      +    ?    {m,n}

非贪婪(懒惰模式): 尽可能少的匹配内容(在贪婪模式后加?即是非贪婪模式)

*? +? ?? {m,n}?

子组

可以使用()为正则表达式建立子组,子组可以看做是正则表达式内部操作的一个整体

  • 子组是在正则表达式整体匹配到内容的前提下才会发挥作 用,它不影响正则表达式整体去匹配目标内容这一原则
    作用
  1. 作为内部整体可以改变某些元字符的行为
    re.search(r"(ab)+\d+",“ababab1234”).group()
    ‘ababab1234’
    re.search(r"\w+@\w+.(com|cn)",“abc@123.com”).group()
    ‘abc@123.com’
  2. 子组在某些操作中可以单独提取出匹配内
    re.search(r"(https|http|ftp)://\S+",“https://www.baidu.com”).group(1)
    Out[121]: ‘https’

子组使用注意事项

  • 一个正则表达式中可以有多个子组
  • 子组一般由外到内,由左到右称之为第一,第二 第三。。。。子组
  • 子组不能重叠,嵌套也不宜很多
    捕获组 和 非捕获组
    格式 : (?Ppattern)
    示例:
    re.search(r"(?Pab)cdef",‘abcdefghti’).group(‘dog’)
    Out[130]: ‘ab’
    作用 : 可以通过组名更方便获取某组内容

正则表达式设计原则

  1. 正确性 ,能正确匹配到目标内容
  2. 排他性 ,除了要匹配的内容,尽可能不会匹配与到其他 内容
  3. 全面性 ,需要对目标的各种情况进行考虑,做到不遗漏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值