小白菜系列之——正则表达式常用语法整理

举报
小糖饼最甜呀 发表于 2022/04/09 22:03:36 2022/04/09
【摘要】 正则表达式如果不经常使用,时间久了容易忘记。我一般偶尔会用到,使用场景并不多,所以每次用的时候,都是现查一下语法。这里整理了一些个人常用的正则表达式语法内容,可以用作临时的快速查找。字符描述^匹配字符串开头$匹配字符串结尾.匹配除换行符以外的任意字符\转义符,或者标记特殊符\d匹配一个数字字符\D匹配一个非数字字符\s匹配任意的空白符\S匹配任意的非空白符\b匹配单词边界\B匹配非单词边界?...

正则表达式如果不经常使用,时间久了容易忘记。我一般偶尔会用到,使用场景并不多,所以每次用的时候,都是现查一下语法。
这里整理了一些个人常用的正则表达式语法内容,可以用作临时的快速查找。

字符 描述
^ 匹配字符串开头
$ 匹配字符串结尾
. 匹配除换行符以外的任意字符
\ 转义符,或者标记特殊符
\d 匹配一个数字字符
\D 匹配一个非数字字符
\s 匹配任意的空白符
\S 匹配任意的非空白符
\b 匹配单词边界
\B 匹配非单词边界
? 匹配0次或者1次
* 匹配0次或者多次
+ 匹配1次或者多次
{n} 匹配n次
{m, n} 匹配至少m次,最多n次
{m,} 匹配至少m次;省略了最大值,最大值没有上限
[] 匹配出现在括号中的字符
[^] 匹配未出现在括号中的字符
[a-z] -与[]连用,匹配-前后范围内的字符,这里匹配的是从a到z的小写字母
^[a-z] -与[^]连用,匹配不在-前后范围内的字符,这里匹配的是从a到z的小写字母以外的字符
() 作为子表达式,改变限定符的作用范围

说明:
匹配模式默认是贪婪模式。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。比如{m, n}优先匹配满足n的字串。

\b,匹配单词边界,放在单词左边,匹配左侧边界,放在单词右边,匹配右侧边界,放在单词两侧,则匹配完整单词。
\B,匹配非单词边界,即放在单词左边,匹配非左侧边界,放在单词右边,匹配非右侧边界,放在单词两侧,则匹配左右两侧都非边界。

举个语法小例子:

  1. 匹配开头是a的字符串:
    ^a

字符串集:

abc
abcd
ac
bcd
bc

匹配结果:

abc
abcd
ac
  1. 匹配结尾是d的字符串:
    d$

字符串集:

abc
abcd
ac
bcd
bc

匹配结果:

abcd
bcd
  1. 匹配开头是a,结尾是c的字符串:
    ^a\S*c$

字符串集:

abc
abcd
ac
bcd
bc

匹配结果:

abc
ac
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。