(1)空字符也算任何字符,也就是说一个点可以表示有一个字符,也可以表示没有字符
% regexp . ""
0
% regexp . " "
1
% regexp . a
1
% regexp . @
1
% regexp . #
1
% regexp . 1
1
% regexp {(a|b)+} "aaa" match
1
% set match
aaa
#为什么会这样?
% regexp {(a|b)+} "aaabbb" match
1
% set match
aaabbb
% regexp {(a)+} "aaabbb" match
1
% set match
aaa
% regexp {(a|b)+} "bbaaabb" match1
1
% set match1
bbaaabb
%
区间匹配用来表示匹配一系列字符串中间的一个。
% regexp {[abcdef]} "ab" match
1
% set match
a
% regexp "\[abcdef]" "ab" match
1
% set match
a
% regexp "\[abcdef]+" "abc" match
1
% set match
abc
^这个字符也有2义性,如果把它放在中括号里面的话,它表示【非】的意思,比如[^a-z]表示匹配不是a-z字母的其他字符,但是不在中括号里面,比如^ab表示必须最前面是ab这2个字符。
% regexp {[^1-8]} a
1
% regexp {[^1-8]} 1
0
\d表示0-9之间的字符(1个)
% regexp {\d} 8
1
% regexp {\d} 11 match
1
% set match
1
% regexp {\w} 111aa_b match
1
% set match
1
% regexp {(\w)+} 111aa_b match
1
% set match
111aa_b
% regexp {\d} 1a1 match
1
% set match
1
% regexp {[:alnum:]} aBC2 match
1
% set match
a
% regexp {[:alnum:]+} aBC2 match
1
% set match
a
% regexp {[[:alnum:]]} aBC2 match
1
% set match
a
% regexp {[[:alnum:]]+} aBC2 match
1
% set match
aBC2
{m}匹配前面模式的m次
% regexp {a{3}} aaa 1 % regexp {a{3}} aaaa 1 % regexp {a{3}} aaaa match 1 % set match aaa % regexp {a{3}} abaa match 0 % regexp {a{3}} aa match 0