Python re模块
re
模块是 Python 内置的用于正则表达式操作的模块,可以实现文本的匹配、查找、替换等功能。如果你需要处理数据中的文本信息,如将不同格式的电话号码、邮箱地址或者身份证号码提取出来,或者根据文本中的关键词进行分类或者计数等,re
模块就是一个非常好的工具。
re.fullmatch(posix, pattern, string, flags=0)
该函数的作用是:尝试使用正则表达式模式 pattern
对字符串 string
进行全匹配,如果匹配成功,则返回匹配对象;否则返回 None
。
参数解释:
posix
:布尔型参数,指定搜索是否应从字符开头开始,默认为False
。pattern
:正则表达式字符串,用于匹配文本。string
:待匹配文本。flags
:匹配模式,常用的有re.I
表示忽略大小写,re.M
表示多行匹配。
下面通过实例来展示这个函数的使用。
示例
匹配字符串
import re
pattern = "Hello,\s\w+"
text = "Hello, Alice"
match1 = re.fullmatch(pattern, text)
match2 = re.fullmatch(pattern, "Hello, Bob")
if match1:
print(match1.group())
else:
print("No match")
if match2:
print(match2.group())
else:
print("No match")
输出结果为:
Hello, Alice
No match
在这个例子中,我们将 pattern
定义为 Hello,\s\w+
,表示一个以 "Hello, "
开头,后面紧跟着一个空格和一个或多个字母的单词结尾的字符串。text
是我们要匹配的字符串,包含了这个模式,因此可以通过 fullmatch
函数返回一个匹配对象 match1
;而 match2
中没有这个模式,因此返回 None
。
匹配网址
有时候,我们需要从一大段文本中提取出网址链接,这时候就需要向 re.fullmatch()
函数中传递一个相应的正则表达式模式。
import re
pattern = r"(https?://)?(\w+\.)*\w+\.(com|cn|org)"
text = "Here is the official website of Tsinghua University: https://www.tsinghua.edu.cn/"
match = re.search(pattern, text)
if match:
print(match.group())
else:
print("No match")
这里,我们定义了一个正则表达式模式 pattern
,用于匹配网址。模式基本包括以下几个部分:
(https?://)?
:可选的协议部分,包括http
或者https
。(\w+\.)*
:多个子域名部分,例如www
、blog
等,由字母和数字组成。\w+\.
:主域名部分,例如com
、cn
等。(com|cn|org)
:结尾处允许的几个顶级域名。
除了这几个部分,还可以灵活地添加其它匹配条件。这样定义之后,我们可以通过调用 re.fullmatch()
函数对文本进行匹配,输出的结果即为匹配的网址。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python re.fullmatch.posix函数:启用 POSIX 正则表达式语法 - Python技术站