跳至主要內容

Python正则表达式常用语法

yczha大约 1 分钟pythonpython正则

基本语法

  • search(pattern, string, flags=0) :在一个字符串中查找匹配
  • findall(pattern, string ,flags=0) :找到匹配,返回所有匹配部分的列表
  • sub(pattern, repl, string , count=0, flags=0) :字符串中匹配正则表达式的部分替换为其他值
  • split(pattern, string ,maxsplit=0, flags=0) :根据匹配分割字符串,返回分隔符串组成的列表

常用规则

\d :匹配一个数字
. :匹配任一个字符
* :匹配任意多个字符
+ :匹配至少一个字符
?:匹配0个或者一个字符
{n}:表示n个字符
{m,n}:匹配m到n个字符
| :或
^ :必须以某字符开头
$ :必须以某字符结束
[\u4e00-\u9fa5]:匹配中文

使用实例

import re
s = "大家好,我是 hello world!++--==  Hello     everyone"
  • 查找字符串中的所有英文字母

    print(re.findall(r"[a-zA-Z]+", s))
    # 结果
    ['hello', 'world', 'Hello', 'everyone']
    
  • 查找字符串中的所有汉字

    print(re.findall(r"[\u4e00-\u9fa5]+", s))
    # 结果
    ['大家好', '我是']
    
  • 查找特定字串在字符串中的位置

    print(re.search(r"[a-zA-Z]+", s).span())
    # 结果
    (7, 12)
    
  • 替换字符(删除所有空格)

    print(re.sub(r"\s+", "", s))
    # 结果
    大家好,我是helloworld!++--==Helloeveryone
    
  • 使用多种符号分割

    print(re.split(r"[!+,\-=\s]+", s))
    # 结果
    ['大家好', '我是', 'hello', 'world', 'Hello', 'everyone']