Python 中的正则表达式 - 文章教程

Python 中的正则表达式

发布于 2021-01-06 字数 2792 浏览 1092 评论 0

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

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

记号 说明 例子
literal 匹配字符串的值 foo
re1|re2 匹配re1或re2 boo|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.,”),姓氏没有什么限制,允许有多个单词、横线、大写字母。

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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

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

2583 文章
29 评论
84935 人气
更多

推荐作者

清欢

文章 1 评论 0

贱贱哒

文章 3 评论 0

悸初

文章 2 评论 0

西瓜杏

文章 0 评论 0

各自安好

文章 0 评论 0