Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个字符串,我想检查数组中的任何字符串是否是它的一部分:
set name abcxyz set array [list abc efg hij] set List [join $array "|"] if {[regexp {($List)} $name]} { ... }
我不想使用 foreach 循环是因为 if 语句中还有一些其他条件,并且每个条件都需要一个 foreach 循环。然后运行时间会增加很多。
任何帮助表示赞赏!
您将其传递为{($List)}. 花括号{}表示不执行替换。所以你的正则表达式模式实际上是:
{($List)}
{}
($List)
这有点愚蠢,因为您试图在字符串末尾匹配单词“List”,根据定义,该字符串不应包含更多字符。
你想要的是将它作为"($List)". 双引号""表示执行替换。所以如果你这样做:
"($List)"
""
regexp "($List)" $name
你的正则表达式模式将是
(abc|efg|hij)
这可能是你想要的。