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

发布于 2024-11-27 09:18:10 字数 866 浏览 1 评论 0原文

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

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

% 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

止于盛夏 2024-12-04 09:18:10

在它们前面加上 \,例如 \)

Precede them with \, for example, \).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文