python 正则re表达式
- re.match函数
re.match(pattern, string, flags=0)
参数 | 描述 |
---|---|
pattern | 匹配正则表达式 |
string | 要匹配的字符串 |
pattern | 匹配正则表达式 |
flags | 标志位,用于控制震泽表达式的匹配方式。如:是否区分大小写,多行匹配 |
正则表达式模式
模式 | 描述 |
---|---|
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾 |
. | 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符 |
[…] | 用来表示一组字符,单独列出:[amk]匹配‘a’,‘m’或’k’ |
[^…] | 不在[]中断的字符:[^abc]匹配除了a,b,c之外的字符 |
^ | 匹配字符串的开头 |
- group
案例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.match('www', 'www.runoob.com')) # 在起始位置匹配
print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配
上面案例输出的结果:
(0, 3)
<_sre.SRE_Match object; span=(0, 3), match='www'>
None
span() 输出开始和结束位置
案例
#!/usr/bin/python
import re
line = "Cats are smarter than dogs"
matchObj = re.match(r'(.*) are (.*?) .*', line, re.M | re.I)
if matchObj:
print("matchObj.group() : ", matchObj.group())
print("matchObj.group(1) : ", matchObj.group(1))
print("matchObj.group(2) : ", matchObj.group(2))
else:
print("No match!!")
输出案例的结果如下:
matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter
- re.search()方法
re.search 扫描整个字符串并返回第一个成功匹配。
函数语法:
re.search(pattern, string, flags=0)
参数 | 描述 |
---|---|
pattern | 匹配正则表达式 |
string | 要匹配的字符串 |
pattern | 匹配正则表达式 |
flags | 标志位,用于控制震泽表达式的匹配方式。如:是否区分大小写,多行匹配 |
示例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配
以上示例返回结果:
(0, 3)
(11, 14)
示例: