|
楼主 |
发表于 2017-11-30 20:14:22
|
显示全部楼层
057论一只爬虫的自我修养5:正则表达式(中2)
>>> import re
>>> re.search(r'[aeiou]', 'I love FishC.com!')
<_sre.SRE_Match object; span=(3, 4), match='o'> # 因为正则表达式自带大小写敏感模式,解决方案1、关闭大小写敏感模式 2、修改字符类,例如
>>> re.search(r'[aeiouAEIOU]', 'I love FishC.com!')
<_sre.SRE_Match object; span=(0, 1), match='I'> # 字符类中的任何一个字符匹配成功,就算匹配成功,在中括号中,也可以使用一个小横杠-,来表示一个范围,例如
>>> re.search(r'[0-9]', 'I love 123 FishC.com!')
<_sre.SRE_Match object; span=(7, 8), match='1'>
>>> re.search(r'[2-9]', 'I love 123 FishC.com!')
<_sre.SRE_Match object; span=(8, 9), match='2'>
>>>
有关数字范围↑
——————————————————————————————
有关匹配个数↓
限定重复匹配的个数,可以使用大括号来解决,例如
>>> re.search(r'ab{3}c', 'abbbc')
<_sre.SRE_Match object; span=(0, 5), match='abbbc'> # 要重复多少次,大括号里就写上那个要重复次数的数字就行了
>>> re.search(r'ab{3}c', 'abbbbbbbbc') # 如果手滑多打了几个b,Ta就匹配不了了
>>> re.search(r'ab{3,10}c', 'abbbbbbbbc') # 可以给Ta限制范围
<_sre.SRE_Match object; span=(0, 10), match='abbbbbbbbc'> # 在3或10以内的b,Ta都会进行匹配
>>> |
|