携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情
正则表达模式
import re
text = input()
#********** Begin #
#1.匹配字符单词 Love
print(re.findall(r'Love',text))
#2.匹配以 w 开头的完整单词
print(re.findall(r'\bw\w?\b',text))
#3.查找三个字母长的单词(提示:可以使用{m,n}方式)
print(re.findall(r'\b\w{3}\b',text))
#** End **********#
| 元字符 | 功能说明 |
|---|---|
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结束 |
| . | 匹配除换行符以外的任意字符 |
| \d | 匹配数字 |
| \b | 匹配单词头或单词尾 |
| \w | 匹配任何字母、数字以及下划线 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符 |
| \B | 与\b相反,匹配非单词边界 |
| \W | 与\w相反 |
| \S | 与\s相反 |
| {m,n} | {}前的字符或子模式重复至少m次,至多n次 |
ompile()函数
编译正则表达式模式,返回一个对象的模式(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率)。
格式:re.compile(pattern,flags=0)
pattern: 编译时用的表达式字符串(即正则表达式);flags:(可选)编译标志位,用于修改正则表达式的匹配方式,如:是否区分大小写,多行匹配等。常用的flags有:
| 标志 | 含义 |
|---|---|
| re.S(DOTALL) | 使.匹配包括换行在内的所有字符 |
| re.I(IGNORECASE) | 使匹配对大小写不敏感 |
| re.L(LOCALE) | 做本地化识别(locale-aware)匹配,法语等 |
| re.M(MULTILINE) | 多行匹配,影响^和$ |
| re.X(VERBOSE) | 该标志通过给予更灵活的格式以便将正则表达式写得更易于理解 |
| re.U | 根据Unicode字符集解析字符,这个标志影响\w,\W,\b,\B |
match()函数
在字符串刚开始的位置匹配,在开头匹配到目的字符便返回,如果开头没有目的字符将匹配失败,返回None。
格式:re.match(pattern, string, flags=0)
roup():返回被正则匹配的字符串;start():返回匹配开始的位置;end():返回匹配结束的位置;span():返回一个元组包含匹配 (开始,结束) 的位置;groups():返回正则整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。