regexp

Regexp匹配
“x.y”x后面接任何一个字符再接y
“x.y”x后面接.再接y
“xz?y”x后面最多接一个z再接y; 这样,可以是 xyxzy,但不是 xzxdy
“xz*y”x后面接任意数量的z再接y; 这样,可以是 xyxzyxzzzy ,但不是 xzxdy
“xz+y”x后面接一个或多个z再接y; 这样,可以是 xzyxzzy,但不是 xyxzxdy
“s[xyz]t”s后面接x、y或z中的任何一个字符再接t; 这样,可以是 sxtsytszt,但不是 stsat
“a[x0-9]b”a后面接x或0-9之间的任何一个字符再接b; 这样,可以是 axba0b 或、a4b,但不是 abaab
“s[^xyz]t”s 后面接非x、y、z的任何一个字符再接t; 这样,可以是 sdtset,但不是 sxtsytszt
“s[^x0-9]t”s后面接非x或非0-9之间的任何一个字符再接t; 这样,可以是 sltsmt,但不是 sxts0ts4t
“^x”x在字符串的开头; 这样,可以是 xzyxzzy,但不是 yzyyxy
“x$”x在字符串的末尾; 这样,可以是 yzxyx,但不是 yxzzxy


通配符支持语言匹配
\全部转义后面的字符。切换后续符号是否作为通配符。根据程序的不同,后续的字母或数字可用各种不同的方式解释。
.全部任何字符。
^全部行首。
$全部行尾。
[…]全部在括号内的任何字符。
[^…]全部除括号内字符的任何字符。
*全部次数不定的重复前一个元素。
?egrep/Emacs, Perl/Python0次或1次重复前一个元素。
+egrep/Emacs, Perl/Python1次或多次重复前一个元素。
{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: