TCL,正则表达式带')',']'或'}'

1 regex tcl

我正在尝试在TCL中编写一个正则表达式来检测字符串末尾的0个或多个字符')',']'或'}'.

如下所示,使用a,bc代替),]} ...

% regexp {[a]*$} "_______a" m
1
% put $m  ; # Prints affected portion
a
% regexp {[a]*$} "_______aaaa" m
1
% put $m
aaaa
% regexp {[ab]*$} "_______ababababab" m
1
% put $m
ababababab
% regexp {[abc]*$} "_______abcbabcaccc" m
1
% put $m
abcbabcaccc
%
Run Code Online (Sandbox Code Playgroud)

我找不到如何逃避角色.

提前致谢.

Gmne


添加...

用\来代替它们,例如,\).

谢谢MRAB.这在Linux上运行良好!但对于Windows来说似乎并不相同.

% ### Windows:
% regexp {[\)\]\}]+$} "_____)))"
0
% regexp {[\)]+$} "_____)))" m
1
% puts $m
)))
% regexp {[\)]+$} "_____)\\\\" m
1
% puts $m
)\\


% ### Linux
% regexp {[\)\]\}]+$} "_____)))" m
1
% puts $m
)))
Run Code Online (Sandbox Code Playgroud)

有什么建议?

MRA*_*RAB 5

\例如,在他们之前\).