Python 中的正则表达式

发布于 2021-01-06 13:07:50 字数 2165 浏览 1323 评论 0

在 Python专门术语中,有两种主要方法完成模式匹配:搜索(searching)和匹配(matching)。搜索即在字符串任意部分中查找匹配的模式,而匹配是指,判断一个字符串能否从起始处全部或部分的匹配某个模式。搜索通过 search() 函数或方法来实现,而匹配是以调用 match() 函数或方法实现的。

元字符(metacharacters)——特殊字符和符号

记号说明例子
literal匹配字符串的值foo
re1|re2匹配re1或re2boo|bar
.匹配任何字符(换行符除外) b.b
^匹配字符串的开始^Dear
$匹配字符串的结尾/bin/*sh$
*匹配前面的正则式零或多次[A-Za-Z0-9]*
+匹配前面的正则式一次或多次[a-z]+\.com
?匹配前面的正则式零次或多次goo?
{N}匹配前面的正则式N次[0-9]{3}
{M, N}匹配出现M次到N次的正则式·0-9[{5-9}
[...]匹配出现的任意一个字符[aeiou]
[...a-z..]匹配出现在a到z的一个字符[A-Za-z]
[^...]不匹配出现的任何一个字符[^aeiou]
(...)匹配括号中RE,并保存为子组([0-9){3})
\d匹配任何数字(\D反意)data\d.txtd
\w匹配任何数字字母字符(\W反意)
\s匹配任何空白符(\S反意)
\b匹配单词边界(\B反意)\bThe\b
\c逐一匹配特殊字符
\A (\Z)匹配字符串的起始(结束)

问号有两种含义

  • 单独使用时表示匹配出现零次或一次的情况
  • 紧跟在表示重复的元字符后面时,表示要求搜索引擎匹配的字符串越短越好。例如 (+?)

例子

正则表达式模式 匹配的字符串 \w+-\d+ 一个由字母或数字组成的字符串,和至少一个数字,两部分中间由连字符连接 [A-Za-z]\w* 第一个字符是字母,其余字符(如果存在的话),是字母或数字(它几乎等价于 Python 语言中合法的标识符 \d{3}-\d{3}-\d{4} (美国)电话号码,前面带区号前缀,例如 800-555-1212 \w+@\w+.com 简单的 XXX@YYY.com 格式的电子邮件地址 \d+(.\d*)? 表示简单的浮点数 Mr?s?. )?[A-Z][a-z]* [ A-Za-z-]+ 名字和姓氏,对名字的限制(首字母大写,其它字母(如果存在)小写),全名前有可选的称谓(“Mr.,”“Mrs.,” “Ms.,” 或 “M.,”),姓氏没有什么限制,允许有多个单词、横线、大写字母。

一对圆括号(()) 和正则表达式一起使用时可以实现以下任意一个(或两个)功能: * 对正则表达式进行分组 * 匹配子组

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文