我有一个问题,关于在TCL中使用正则表达式匹配括号。
例如我有一个这样的字符串:
例如我有一个这样的字符串:
yes, it is (true, and it is fine).
我只想匹配这一部分 yes, it is (true
,如何匹配它?
正如@bobah所建议的那样,您可以将括号放在字符类中。
yes, it is [(]true
但更常见的是对其进行转义:
yes, it is \(true
但是如果你正在转义它,请确保你了解必须执行以下操作之一:
regexp -- "yes, it is \\(true" $subject
regexp -- {yes, it is \(true} $subject
[]
会被解释为命令。你必须使用regexp -- {yes, it is [(]true}
或者regexp -- "yes, it is \[(\]true"
。 - Andrew Cheong1
: % regexp -- "yes, it is \\(true" "yes, it is (true, and it is fine)."
. - Andrew Cheong
()[]^$?.*+\
前缀加上\
。\
是标准的正则表达式转义字符;这不是一个答案,因为我实际上不使用 TCL,所以它可能是正则表达式规则的一个例外。(编辑:忽略代码块中的尾随空格,否则文本会被 SO 解析错误) - Matt