- 帖子
- 8
- 精华
- 0
- 积分
- 60
- 阅读权限
- 20
- 注册时间
- 2019-3-11
- 最后登录
- 2019-4-15
|
本帖最后由 stormsha 于 2019-3-13 13:13 编辑
import re
# 1
"""
. 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
.+ 加上 + 匹配一个或多个,贪婪匹配
.* 加上 * 匹配零个或多个,贪婪匹配
.+? .*? 加上 ? 非贪婪匹配
"""
print(1, '---------------------------------------')
# 实战检测一下更好理解
text = 'Let us go go go !'
m1 = re.findall('us (.+) !', text)
m2 = re.findall('(go.+) ', text)
m3 = re.findall('(go.*) ', text)
print(m1)
print(m2)
print(m3)
# 2
"""
# \d 匹配任意数字,等价于 [0-9].
\d+
\d+? 这里 + 、?、+? 和上边意义是一样的,只不过匹配的目标是 \d (数字)
"""
# 实战检测一下更好理解
print(2, '---------------------------------------')
text = 'Let us 3 4 5 52 go go go !'
m1 = re.findall('(\d+?)', text)
m2 = re.findall('(\d+)', text)
m3 = re.findall('(5\d*?)', text)
print(m1)
print(m2)
print(m3)
# 3
"""
\s 匹配任意空白字符,等价于 [\t\n\r\f].
\s*
\s*?
从上边可以发现, *、*?和上边意义也一样,只是这里\s匹配空字符
"""
print(3, '---------------------------------------')
text = 'Let us go go go !'
m1 = re.findall(r'go\s+', text)
m2 = re.findall(r'go\s+?', text)
m3 = re.findall(r'go\s*?', text)
m4 = re.findall(r'(go\s*)', text)
m5 = re.findall(r'(go\s*)+', text)
m6 = re.findall(r'(go\s*?)', text)
m7 = re.findall(r'(go\s*?)+', text)
m8 = re.findall(r'(go go go\s*)', text)
print(m1)
print(m2)
print(m3)
print(m4)
print(m5)
print(m6)
print(m7)
print(m8)
"""
看到了这个问题,自己写了一下加深一下对 . \d \s 的理解
""" |
|