034、模块re:正则表达式
本文最后更新于 67 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com

模块re:正则表达式

正则表达式是用来匹配字符串或者子串的一种模式,匹配的字符串可以很具体,也可以很一般化。

Python 标准库提供了 re 模块:

import re

re.match()函数

re.match()函数对字符串的开头进行匹配,返回第一个匹配对应的Match对象,否则返回None:

pat = "\d+"
s = "abc123abc123456"
re.match(pat, s)

由于字符串不是字母开头,没有匹配结果。

re.search()函数

re.match()函数不同,re.search()函数会用正则表达式去匹配字符串中所有的子串,如果找到,返回第一个匹配对应的Match对象,否则返回None:

re.search(pat, s)

可以调用返回的Match对象的.group()方法查看匹配到的字符串:

m = re.search(pat, s)
m.group(0)
'123'

re.split()函数

re.split()使用指定的正则表达式作为分隔符,对字符串进行分割,其用法为:

pat = " +"
s = "a b    c   d  e"
re.split(pat, s)
['a', 'b', 'c', 'd', 'e']

re.sub()函数

re.sub()函数对字符串中正则表达式匹配的部分进行替换:

pat = " +"
replace = ";"
s = "a b    c   d  e"
re.sub(pat, replace, s)
'a;b;c;d;e'

正则表达式规则

正则表达式由一些普通字符和一些元字符组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义:

子表达式 匹配内容
. 匹配除了换行符之外的内容
\w 匹配所有字母和数字字符
\d 匹配所有数字,相当于 [0-9]
\s 匹配空白,相当于 [\t\n\t\f\v]
\W,\D,\S 匹配对应小写字母形式的补
[...] 表示可以匹配的集合,支持范围表示如 a-z, 0-9 等
(...) 表示作为一个整体进行匹配
¦ 表示逻辑或
^ 表示匹配后面的子表达式的补
  • |表示匹配前面的子表达式 0 次或更多次

  • |表示匹配前面的子表达式 1 次或更多次
    ? |表示匹配前面的子表达式 0 次或 1 次
    {m} |表示匹配前面的子表达式 m 次
    {m,} |表示匹配前面的子表达式至少 m 次
    {m,n} |表示匹配前面的子表达式至少 m 次,至多 n 次

例如:

  • ca*t 匹配: ct, cat, caaaat, ...
  • ab\d|ac\d 匹配: ab1, ac9, ...
  • ([^a-q]bd) 匹配: rbd, 5bd, ...
谨此笔记,记录过往。凭君阅览,如能收益,莫大奢望。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇