【入门系列】正则表达式常用语法以及具体示例详解

正则表达式

前言

正则表达式是所有语言(C++、Java、Python、PHP等)都会用到的语法,它能够帮助我们搜索我们想要的内容

????正则表达式练习网站regexr
????推荐教程:表严肃讲正则表达式

应用场景:b站屏蔽特定弹幕;快速修改文件等

启动正则表示式搜索模式的方法:
以Sublime为例,打开搜索栏,然后按.*即可开启正则表达式搜索
【入门系列】正则表达式常用语法以及具体示例详解

常用语法

代码 解释
. 匹配除换行(\n)外的任何字符
\w 匹配阿拉伯数字(2)、英文大小写(Aa)和下划线(_)
\W 或 [^\w] 匹配\w的补集
\d 匹配阿拉伯数字(0-9)
\s 匹配空白字符:空格、制表符、断行等
\n 匹配所有换行符
int|main 查找int或main
^x 匹配x且x是字符串的开头(行首)
[^x] 匹配除了x以为的所有字符
\b 单词边界 word boundary
【入门系列】正则表达式常用语法以及具体示例详解
[选择范围] 只能表示范围内的一个字符
[abc] 匹配字符a或b或c
[a-k] 匹配字符范围a到k中的任意一个
[2-5] 匹配数字范围2到5中的任意一个
[a-zA-Z] 匹配大小写字母中的任意一个
[^x] 匹配除了x以为的所有字符
{重复次数} 说明
+ 或 {1,} 重复次数>=1均会被匹配
* 或 {0,} 重复次数>=0均会被匹配
? 或 {0, 1} 表示重复0次或1次
{2} 重复两次
{2,} 重复次数>=2均会被匹配
{2, 5} 重复次数为2到5次

一个{重复次数}作用范围是它前面的匹配

说明可以用括号()增加重复次数{}作用的范围,如([a][x-z]){1,3},则重复次数1-3作用的范围是[a][x-z]
【入门系列】正则表达式常用语法以及具体示例详解

具体示例

示例1:简单示例

【入门系列】正则表达式常用语法以及具体示例详解
【入门系列】正则表达式常用语法以及具体示例详解

示例2:()和重复次数{}结合

【入门系列】正则表达式常用语法以及具体示例详解

示例3:单词边界

【入门系列】正则表达式常用语法以及具体示例详解

示例4:分组匹配

【入门系列】正则表达式常用语法以及具体示例详解
修改后

【入门系列】正则表达式常用语法以及具体示例详解

示例5:b站特定弹幕屏蔽

【入门系列】正则表达式常用语法以及具体示例详解

【入门系列】正则表达式常用语法以及具体示例详解

屏蔽大部分刷日期的弹幕^20.*

示例6:中文和英文之间添加空格

中文+空格+英文单词(还有$)
([\u4e00-\u9fa5])([a-zA-Z]|\$)替换为$1 $2
【入门系列】正则表达式常用语法以及具体示例详解
英文单词(还有$)+空格+中文
【入门系列】正则表达式常用语法以及具体示例详解

示例7:汉字匹配

Unicode 万国码,用数字代表文字的一项标准
每个中文都有对应的“身份证”

  • 从19968 到 40869
  • 0x4e000x9fa5
  • 从 一 到 龥

匹配所有汉字的语法一般是[\u4e00-\u9fa5]
但有些地方用起来会有点区别,比如php或sublime中是用[\x{4e00}-\x{9fa5}] 来匹配汉字的


正则表达式语法汇总图

【入门系列】正则表达式常用语法以及具体示例详解