regexp
Regexp | 匹配 |
---|---|
“x.y” | x后面接任何一个字符再接y |
“x.y” | x后面接.再接y |
“xz?y” | x后面最多接一个z再接y; 这样,可以是 xy 或 xzy,但不是 xz 或 xdy。 |
“xz*y” | x后面接任意数量的z再接y; 这样,可以是 xy 或 xzy 或 xzzzy ,但不是 xz 或 xdy。 |
“xz+y” | x后面接一个或多个z再接y; 这样,可以是 xzy 或 xzzy,但不是 xy、xz 或 xdy。 |
“s[xyz]t” | s后面接x、y或z中的任何一个字符再接t; 这样,可以是 sxt、syt 或 szt,但不是 st 或 sat。 |
“a[x0-9]b” | a后面接x或0-9之间的任何一个字符再接b; 这样,可以是 axb 或 a0b 或、a4b,但不是 ab 或 aab。 |
“s[^xyz]t” | s 后面接非x、y、z的任何一个字符再接t; 这样,可以是 sdt 或 set,但不是 sxt、syt 或 szt。 |
“s[^x0-9]t” | s后面接非x或非0-9之间的任何一个字符再接t; 这样,可以是 slt 或 smt,但不是 sxt、s0t 或 s4t。 |
“^x” | x在字符串的开头; 这样,可以是 xzy 或 xzzy,但不是 yzy 或 yxy。 |
“x$” | x在字符串的末尾; 这样,可以是 yzx 或 yx,但不是 yxz 或 zxy。 |
通配符 | 支持语言 | 匹配 |
---|---|---|
\ | 全部 | 转义后面的字符。切换后续符号是否作为通配符。根据程序的不同,后续的字母或数字可用各种不同的方式解释。 |
. | 全部 | 任何字符。 |
^ | 全部 | 行首。 |
$ | 全部 | 行尾。 |
[…] | 全部 | 在括号内的任何字符。 |
[^…] | 全部 | 除括号内字符的任何字符。 |
* | 全部 | 次数不定的重复前一个元素。 |
? | egrep/Emacs, Perl/Python | 0次或1次重复前一个元素。 |
+ | egrep/Emacs, Perl/Python | 1次或多次重复前一个元素。 |
{n} | egrep, Perl/Python; Emacs中为 \{n\} | 只n次重复前一个元素。一些较老的regexp引擎不支持。 |
{n,} | egrep, Perl/Python; Emacs中为 \{n,\} | n次或n次以上重复前一个元素。一些较老的regexp 引擎不支持。 |
{m,n} | egrep, Perl/Python; Emacs中为 \{m,n\} | 最少重复m次、最多重复n次前一个元素。一些较老的 regexp 引擎不支持。 |
| | egrep, Perl/Python; Emacs中为 \| | 接受左边或者右边的元素。通常用于一些模式分类分隔符形式。 |
(…) | Perl/Python;老一点的版本为\(...\) | 在较新的 regexp引擎中,如Perl和 python 把这种模式作为组。较老的regexp引擎,如Emacs和 grep 中,要求\(...\) 。 |
Tags: