正则表达式

             

  • 本词条处于草稿阶段.
预备知识 文本文件与字符编码

  1在文本文件中搜索内容的时候,有时候想要的是某种格式而不是某些具体的字符,例如要搜索 “*月*日 消费 ** 元”,找到匹配项后需要选中这几个字(以便进行替换等操作),又或者仅选中 “元” 前面的数值(以便进行统计等).理论上我们可以通过编程解决这个问题,但更简单地,可以用一种广为使用的表达式来达到同样的效果,就是下面要介绍的正则表达式(regular expresion)

   正则表达式在许多软件中都被支持,例如在常用的文本编辑器(如 VScode),搜索软件(如 Fileseek),和大部分编程语言(如 C++,python,Matlab)中都有很好的支持.

字符匹配

表1:字符匹配
符号 说明 例子
. 匹配单个任意字符,包括空格回车等 .at 可以匹配 batcathat
[...] 匹配方括号中的任意一个字符.如果要表示一个范围的字符可以用 - 连接 [bc]ase 可以匹配 basecase;又例如 [a-z0-9] 可以匹配任意一个小写字母或数字
[^...] 匹配任何除方括号中以外的字符 例如 [^b]ase 不能匹配 base 但可以匹配 case
\w 等效于 [a-zA-Z_0-9]
\W 等效于 [^a-zA-Z_0-9]
\s 空白字符,等效于 [ \f\n\r\t\v](注意第一个字符是空格,剩下的符号是不同功能的空格,见下文)
\S 非空白字符,等效于 [^ \f\n\r\t\v]
\d 一个数字(digit),等效于 [0-9]
\D 一个非数字,等效于 [^0-9]

重复匹配

   在表 1 的命令后面可以加上如下 quantifier

Group

   在 VScode 中,用小括号 group 起来的部分,在替换的时候可以用 $1$2 等来表示.


1. ^ 参考 Matlab 文档相关页面

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

         

© 小时科技 保留一切权利