📖
mabutou's wiki
  • About
  • 🤖Linux
    • 常规日志ip统计
    • traefik 生成 htpasswd
    • 日志查询
      • 按时间筛选跨行日志
      • 文本搜索 Ripgrep
      • goaccess 解析日志文件
      • ripgrep 筛选指定时间范围日志
    • 根据端口号,找到对应进程
    • Centos 7
      • centos7 安装 MySQL 客户端
    • Ubuntu
      • 清理ubuntu磁盘空间
    • dpkg: warning: files list file for package 'x' missing
    • 转发本地代理到服务器
    • 50 Most Frequently Used UNIX
    • 僵尸进程
    • 查看大文件
    • install xrdp
    • locales error
    • OpenSSH Slow: Hanging at SSH2_MSG_SERVICE_ACCEPT received
    • shell 命令按次数输出v2访问日志的 ip 统计
    • ssh 端口转发脚本
    • shell proxy
    • firewall-cmd
    • mout webdav
    • du 命令
    • Unable to set locale
    • tar分卷压缩与解压缩
    • 合并目录下所有文件内容
    • rsync command
    • journal 日志大小限制
    • add swapfile
    • LVM manage
    • Linux logrotate
    • new user && group
    • Nginx 开启OCSP装订
    • 删除指定时间区间内的文件
    • 群晖初始化
    • ubuntu 内核升级脚本
    • curl 请求带有用户名和密码的 url
  • 🐬Front-end
    • 清理yarn/npm本地缓存
  • ❄️ K8S
    • 批量删除failed pod
    • 镜像批量打标签并推送
    • basic command
    • busybox 解析 pod ip
    • kubectl set node label
    • set pod's image version
    • k8s proxy
    • Force delete POD
  • 🐳Docker
    • 根据进程pid查看该进程所属的容器
    • docker pull 设置下载线程数
    • 查看数据卷目录
    • delete dangling images
    • install docker-compose
    • 按关键词停止容器
    • 限制&&清除容器日志
    • docker images 按大小排序镜像
    • 实时截取日志
    • 查询容器ip
    • 配置镜像加速
    • df 排除 多余文件系统
    • docker copy file from image to host && prune container
  • 🐮Rancher
    • 重置admin 密码
    • 卸载
  • 🐍Python
    • start a simple http_server
  • 🍎Mac
    • MacOS 浏览器播放音频没声音
    • mac 执行sed -i指令时,提示extra characters at the end of command
    • 创建 macOS U盘启动盘
    • Tmux 启动时 127 错误
    • Kill Apple Remote Desktop via ssh
    • hack wechat sqlite
    • 刷新 DNS
    • masscan 端口扫描
    • start apache_server
    • timemachine list and clean
    • dmg || .app 提示文件已损坏
    • 重启 Dock 栏
    • macOS(BSD system) 禁用 ssh 密码登录
  • 🖥️Windows
    • 命令行获取电脑的序列号
    • enable windows ping icmp
    • 关闭休眠模式
    • 卓越性能模式
  • ⌨️ Cheatsheet
    • VIM
    • Bash
    • Git
      • github init
      • Git 变更默认分支名
      • Git 大小写问题
    • Tmux
    • ffmpeg
  • Application
    • chrome 清除 dns && https 缓存
  • 正则表达式
    • basic
    • regular expression
  • Proxmox
    • stop pve
  • VMware
    • 虚拟机设置静态ip, Vmware 虚拟机配置全攻略 - 少数派
  • Hetzner
    • hz 单ip 独服 安装 proxmox 后网卡配置
    • hetzner_box
  • Oracle-Cloud-ARM
    • 修改引导卷大小
  • 镜像源
    • pip 清华源
    • ubuntu 阿里云镜像
    • centos 阿里云镜像
    • npm 淘宝镜像
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 正则表达式

regular expression

说明: 如果需要匹配的字符是正则表达式中的特殊字符,那么可以使用\进行转义处理,例如想匹配小数点可以写成.就可以了,因为直接写.会匹配任意字符;同理,想匹配圆括号必须写成(和),否则圆括号被视为正则表达式中的分组。

符号

解释

示例

说明

匹配任意字符

b.t

可以匹配bat / but / b#t / b1t等

\w

匹配字母/数字/下划线

b\wt

可以匹配bat / b1t / b_t等但不能匹配b#t

\s

匹配空白字符(包括\r、\n、\t等)

love\syou

可以匹配love you

\d

匹配数字

\d\d

可以匹配01 / 23 / 99等

\b

匹配单词的边界

\bThe\b

^

匹配字符串的开始

^The

可以匹配The开头的字符串

$

匹配字符串的结束

.exe$

可以匹配.exe结尾的字符串

\W

匹配非字母/数字/下划线

b\Wt

可以匹配b#t / b@t等但不能匹配but / b1t / b_t等

\S

匹配非空白字符

love\Syou

可以匹配love#you等但不能匹配love you

\D

匹配非数字

\d\D

可以匹配9a / 3# / 0F等

\B

匹配非单词边界

\Bio\B

[]

匹配来自字符集的任意单一字符

[aeiou]

可以匹配任一元音字母字符

[^]

匹配不在字符集中的任意单一字符

[^aeiou]

可以匹配任一非元音字母字符

*

匹配0次或多次

\w*

+

匹配1次或多次

\w+

?

匹配0次或1次

\w?

{N}

匹配N次

\w{3}

{M,}

匹配至少M次

\w{3,}

{M,N}

匹配至少M次至多N次

\w{3,6}

|

分支

foo|bar

可以匹配foo或者bar

(?#)

注释

(exp)

匹配exp并捕获到自动命名的组中

(? <name>exp)

匹配exp并捕获到名为name的组中

(?:exp)

匹配exp但是不捕获匹配的文本

(?=exp)

匹配exp前面的位置

\b\w+(?=ing)

可以匹配I'm dancing中的danc

(?<=exp)

匹配exp后面的位置

(?<=\bdanc)\w+\b

可以匹配I love dancing and reading中的第一个ing

(?!exp)

匹配后面不是exp的位置

(?<!exp)

匹配前面不是exp的位置

*?

重复任意次,但尽可能少重复

a.*ba.*?b

将正则表达式应用于aabab,前者会匹配整个字符串aabab,后者会匹配aab和ab两个字符串

+?

重复1次或多次,但尽可能少重复

??

重复0次或1次,但尽可能少重复

{M,N}?

重复M到N次,但尽可能少重复

{M,}?

重复M次以上,但尽可能少重复

Python对正则表达式的支持

Python提供了re模块来支持正则表达式相关操作,下面是re模块中的核心函数。

函数

说明

compile(pattern, flags=0)

编译正则表达式返回正则表达式对象

match(pattern, string, flags=0)

用正则表达式匹配字符串 成功返回匹配对象 否则返回None

search(pattern, string, flags=0)

搜索字符串中第一次出现正则表达式的模式 成功返回匹配对象 否则返回None

split(pattern, string, maxsplit=0, flags=0)

用正则表达式指定的模式分隔符拆分字符串 返回列表

sub(pattern, repl, string, count=0, flags=0)

用指定的字符串替换原字符串中与正则表达式匹配的模式 可以用count指定替换的次数

fullmatch(pattern, string, flags=0)

match函数的完全匹配(从字符串开头到结尾)版本

findall(pattern, string, flags=0)

查找字符串所有与正则表达式匹配的模式 返回字符串的列表

finditer(pattern, string, flags=0)

查找字符串所有与正则表达式匹配的模式 返回一个迭代器

purge()

清除隐式编译的正则表达式的缓存

re.I / re.IGNORECASE

忽略大小写匹配标记

re.M / re.MULTILINE

多行匹配标记

说明: 上面提到的re模块中的这些函数,实际开发中也可以用正则表达式对象的方法替代对这些函数的使用,如果一个正则表达式需要重复的使用,那么先通过compile函数编译正则表达式并创建出正则表达式对象无疑是更为明智的选择。

上一页basic下一页Proxmox

最后更新于4年前

这有帮助吗?

.