我正在尝试在TCL中编写一个正则表达式来检测字符串末尾的0个或多个字符')',']'或'}'.
如下所示,使用a,b和c代替),]和} ...
% 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)
有什么建议?