小白菜系列之——正则表达式常用语法整理
【摘要】 正则表达式如果不经常使用,时间久了容易忘记。我一般偶尔会用到,使用场景并不多,所以每次用的时候,都是现查一下语法。这里整理了一些个人常用的正则表达式语法内容,可以用作临时的快速查找。字符描述^匹配字符串开头$匹配字符串结尾.匹配除换行符以外的任意字符\转义符,或者标记特殊符\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,匹配非单词边界,即放在单词左边,匹配非左侧边界,放在单词右边,匹配非右侧边界,放在单词两侧,则匹配左右两侧都非边界。
举个语法小例子:
- 匹配开头是a的字符串:
^a
字符串集:
abc
abcd
ac
bcd
bc
匹配结果:
abc
abcd
ac
- 匹配结尾是d的字符串:
d$
字符串集:
abc
abcd
ac
bcd
bc
匹配结果:
abcd
bcd
- 匹配开头是a,结尾是c的字符串:
^a\S*c$
字符串集:
abc
abcd
ac
bcd
bc
匹配结果:
abc
ac
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)