TCL,正则表达式与 ')',']'或'}'
我正在尝试在 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
%
我找不到如何转义字符。
提前致谢。
Gmne
已添加...
在它们前面加上 \ ,例如 \) 。
谢谢MRAB。这在 Linux 上工作得很好! 但对于Windows来说似乎不一样..
% ### Windows:
% regexp {[\)\]\}]+$} "_____)))"
0
% regexp {[\)]+$} "_____)))" m
1
% puts $m
)))
% regexp {[\)]+$} "_____)\\\\" m
1
% puts $m
)\\
% ### Linux
% regexp {[\)\]\}]+$} "_____)))" m
1
% puts $m
)))
有什么建议吗?
I'm trying, in TCL, to write a regex to detect 0 or more characters ')', ']' or '}' in the end of a string.
Like the following, using a, b and c instead of ), ] and }...
% 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
%
I couldn't find how to escape the characters.
Thanks in advance.
Gmne
Added...
Precede Them with \ , for example, \) .
Thanks MRAB. Thats work good on Linux!.
But it seems not to be the same for Windows..
% ### Windows:
% regexp {[\)\]\}]+$} "_____)))"
0
% regexp {[\)]+$} "_____)))" m
1
% puts $m
)))
% regexp {[\)]+$} "_____)\\\\" m
1
% puts $m
)\\
% ### Linux
% regexp {[\)\]\}]+$} "_____)))" m
1
% puts $m
)))
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在它们前面加上
\
,例如\)
。Precede them with
\
, for example,\)
.