[关闭]
@songying 2020-01-02T17:04:31.000000Z 字数 1097 阅读 1285

常见的正则表达式

正则表达式


https://blog.csdn.net/lxcnn/article/details/4756030

贪婪模式 vs 非贪婪模式

贪婪模式量词 非贪婪模式量词
{m,n} {m,n}?
{m} {m}?
? ??
* *?
+ +?

常用匹配

匹配公式 说明
^cat$ 只包含cat的行
^$ 空行
^ 无意义
[0-9] 匹配数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母

1. 正则表达式语法

常用字符

表示法 描述 实例
literal 匹配文本字符串的字面值 literal foo
re1 | re2 匹配正则表达式 re1 或者 re2 foo|bar
. 匹配任何单个字符(除了\n 之外) b.b
^ 匹配字符串起始部分 ^Dear
$ 匹配字符串终止部分 /bin/*sh$
* 匹配 0 次或者多次前面出现的正则表达式 [A-Za-z0-9]*
+ 匹配 1 次或者多次前面出现的正则表达式 [a-z]+.com
? 匹配 0 次或者 1 次前面出现的正则表达式 goo?
{N} 匹配 N 次前面出现的正则表达式 [0-9]{3}
{M,N} 匹配 M~N 次前面出现的正则表达式 [0-9]{5,9}
[...] 匹配来自字符集的任意单一字符 [aeiou]
[..x−y..] 匹配 x ~ y 范围中的任意单一字符 [0-9], [A-Za-z]
[^...] 不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现) [^aeiou],[ ^A-Za-z0-9]
(...) 匹配封闭的正则表达式,然后另存为子组
\ 转义字符 \* 匹配 *

特殊字符

特殊字符 说明
\number
\A 只匹配字符串开始
\Z 只匹配字符串尾
\b 匹配单词开始或结尾的位置
\B 匹配空字符串,但不能在词的开头或结尾
\d 匹配任何十进制数字,与[0-9]一致
\D 匹配任何非十进制数字的字符
\s 匹配任何空格字符,与[\n\t\r\v\f]相同
\S 匹配任何非空格字符
\w 匹配任何字母数字字符,与[A-Za-z0-9_]相同
\W 匹配任何不是单词字符的字符

扩展表示

扩展表示法 说明

()及反向应用

括号能够记忆其中子表达式匹配的文本,不论这些文本是什么,\1都能记住它们,\1,\2分别表示第一,第二组括号匹配的文本。

  1. ([a-z])([0-9])\1\2 # \1表示[a-z]匹配的内容,\2表示[0-9]匹配的内容

\<\>元字符序列

分别用来匹配单词的开头和结束位置

  1. \<cat # 匹配单词的开头部分cat
  2. cat\> # 匹配单词的结尾部分cat
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注