import re
x = re.compile('www')
print(re.findall(x,'www.baidu.www'))
# ['www', 'www']
x = re.compile('yyy')
print(re.findall(x,'www.baidu.www'))
# []
注意:
match 和 search 是匹配一次 findall 匹配所有。
七.finditer
在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
re.finditer(pattern, string, flags=0)
pattern:匹配的正则表达式
string: 要匹配的字符串。
flags: 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
import re
x = re.compile('www')
y = re.finditer(x,'www.baidu.www')
for i in y:
print(i,i.group())
# <re.Match object; span=(0, 3), match='www'> www
# <re.Match object; span=(10, 13), match='www'> www
八.split
split 方法按照能够匹配的子串将字符串分割后返回列表。
re.split(pattern, string[, maxsplit=0, flags=0])
pattern: 匹配的正则表达式
string: 要匹配的字符串。
maxsplit:分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。
flags: 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
x = re.compile(r'\.|:')
print(re.split(x, 'www.baidu:com'))
# ['www', 'baidu', 'com']
九.表达式模式
模式 | 描述 |
^ | 匹配字符串开头 。 |
$ | 匹配字符串结尾 。 |
. | 匹配除 '\n’之外的任何单个字符。要匹配 ‘\n’ 请使用象 ‘[.\n]’ 的模式 。 |
+ | 匹配前一个字符出现1次或者无限次,即至少有1次 。 |
* | 匹配前一个字符出现0次或者无限次,即可有可无 。 |
? | 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 。 |
[ ] | 匹配[ ]中列举的字符 。 |
( ) | 将括号中字符作为一个分组进行匹配 。 |
{ } | 匹配前一个字符出现的次数。 |