正则表达式实例学习-TCL2

来源:互联网 发布:网络优化 谢金星 pdf 编辑:程序博客网 时间:2024/06/06 06:54

(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