re正则表达式7_{}

curly brackets {}

 

instead of one number, you can specify a range by writing a minimum,a comma,and a maximum in between the curly brackets.

for example, the regex (ha) {3,5} will match 'hahaha' ,'hahahaha',and 'hahahahaha'

{3,5}是索引范围,3表示最小值,5表示最大值。

 

(ha){3}  =(ha)(ha)(ha)

 

(ha){3,5}=

((ha)(ha)(ha)|(ha)(ha)(ha)(ha)|(ha)(ha)(ha)(ha)(ha))

 

 

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import re
#{3}表示倍数
re1=re.compile(r'(ha){3}')
mo1=re1.search('hahaha')
print("mo1.group():",mo1.group())

#此处找不到匹配的一个ha
mo2=re1.search('ha')
mo2==None

greedy_re=re.compile(r'(ha){3,5}')
greedy_mo=greedy_re.search('hahahahaha') #五个ha可以匹配3个,4个或5个,贪婪搜索抓取最长的字符串
print("greedy_mo.group():",greedy_mo.group())

nonegreedy_re=re.compile(r'(ha){3,5}?')
nonegreedy_mo=nonegreedy_re.search('hahahahaha')
print("nonegreedy_mo.group():",nonegreedy_mo.group())

 

 

贪婪与非贪婪搜索

Python默认使用贪婪搜索,贪婪搜索意味着匹配最长的字符串。

非贪婪式搜索意味着匹配最短字符串。{}?表示非贪婪搜索

 

?在re正则表达式中有两个意思:

(1)非贪婪搜索

(2)flagging an optional group

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值