当前位置: Python基础教程 > 18-py与正则表达式 > 阅读正文

python之regex匹配单个字符

2021.8.21.   696 次   740字

本节介绍在python中,如何使用正则表达式(regex)匹配单个字符

字符功能
.匹配任意1个字符(除\n)
[ ]匹配[ ]中举例的字符
\d匹配数字,即0-9
\D匹配非数字,即不是数字
\s匹配空白,即空格,tab键
\S匹配非空白
\w匹配单词字符,即a-z、A-Z、0-9、_
\W匹配非单词字符

首先,re.match()方法,是从左到右匹配的,只要从左到右符合即可

我们先练习\d,它表示代替任意一个数字,例如

import re


def main():

    pattern = r"52的小窝v\d"
    result1 = re.match(pattern, "52的小窝v11")
    result2 = re.match(pattern, "52的小窝v2")

    if result1:
        print(result1.group())

    if result2:
        print(result2.group())


if __name__ == "__main__":
    main()

程序执行结果:

  • 52的小窝v1
  • 52的小窝v2

\d的范围可能太广,我们可以使用[ ]指定一些值,比如下面这个例子,只会匹配[ ]中的数值,指定了1或者2

re.match(r"52的小窝v[12]", "52的小窝v6")

对于连续多个数值,可以使用-表示,例如1-46-8表示1到4且6到8。中括号中不仅可以匹配数字,也可以匹配字母,例如[0-9a-zA-Z]表示所有的数字,字母。

对于字母,数字,下划线,可以使用\w快速匹配。

re.match(r"52的小窝\w", "52的小窝_")

但是谨慎使用\w,它匹配的字母,其实是utf8字母,包括中文等

如果你需要判断空格,或者tab可以使用\s。当然也说明\s用的比较少

此外,d与D正好相反,包括s与S,w与W。而.表示任意一个字符,除了\n。

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群