来自于Everything的正则表达式(Regular Expression, 常用简写:RegEx):
表达式 | 作用 |
---|---|
a|b | 匹配 a 或者 b |
gr(a|e)y | 匹配 gray或 grey |
. | 匹配任意一个字符(除了换行符) |
[abc] | 匹配a或b或c的一个 |
[^abc] | 匹配任意一个字符但不包括a,b,c |
[a-z] | 匹配26个小写字母任意一个 |
[a-zA-Z] | 匹配26个字母大小写任意一个 |
^ | 匹配文件名的头部 |
$ | 匹配文件名的尾部 |
* | 匹配前一项内容0或者多次 |
? | 匹配前一项内容0或者1次 |
+ | 匹配前一项内容1次或者多次 |
{x} | 匹配前一项内容 x 次 |
{x,} | 匹配前一项内容 x 或多次 |
{x,y} | 匹配前一项内容次数介于 x 和 y之间 |
\w | 匹配字母或者数字或者下划线或者汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
上述是常用的正则表达式,更多可以参见维基百科或者菜鸟教程:正则表达式。
在Listary等很多软件中,注意使用*
来表示匹配任意字符,实际上这是 通配符 ( wildcard),和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求。 通常地,星号 *
匹配0个或以上的字符,问号 ?
匹配1个字符。比如,*.txt
可以匹配所有文本文档,te?t.txt
匹配所有第三个字符不确定其他确定如上的文本文档。
.*
单个字符匹配任意次,即贪婪匹配。.*?
是满足条件的情况只匹配一次,即最小匹配.
*
限定符是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?
就可以实现非贪婪或最小匹配。