正则表达式

146 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

正则表达模式

image.png

image.png 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():返回正则整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。