首页 > 解决方案 > 不平衡括号的 Tcl-regexp

问题描述

每次我写:

set a "cell (number 3)"
regexp "cell (" $a

我收到一条错误消息,括号 () 不平衡。我该如何解决?我不想写regexp "cell (number 3)" $a

标签: tcl

解决方案


(字符在正则表达式中很特殊:它以一对捕获括号开头。

你想告诉 regexp 你想要一个文字左括号:

regexp {cell \(} $a
# or
regexp {cell [(]} $a

将正则表达式文字括在大括号而不是引号中是最佳实践:它允许您最大限度地减少过多的反斜杠,以保护正则表达式字符免受它们的特殊Tcl含义的影响。


推荐阅读