我正在尝试在TCL中编写一个正则表达式来检测字符串末尾的0个或多个字符')',']'或'}'。
如下所示,使用 a , b 和 c 而不是),] < / b>和} ...
% 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
%
我找不到如何逃避角色。
提前致谢。
Gmne
添加... 的
用\来代替它,例如,\)。
谢谢 MRAB 。这在Linux上运行良好! 但对Windows来说似乎不一样..
% ### Windows:
% regexp {[\)\]\}]+$} "_____)))"
0
% regexp {[\)]+$} "_____)))" m
1
% puts $m
)))
% regexp {[\)]+$} "_____)\\\\" m
1
% puts $m
)\\
% ### Linux
% regexp {[\)\]\}]+$} "_____)))" m
1
% puts $m
)))
有什么建议吗?
答案 0 :(得分:5)
使用\
取代它们,例如\)
。