如何在tcl中使用regexp进行第一次斜杠(/)后得到整个字符串

时间:2013-11-07 22:16:52

标签: regex tcl

我一直试图在Tcl中使用regexp在第一个斜杠之后获取所有字符。

想要的是:

abc/def/ghi

从上面的字符串我想要def/ghi

我尝试使用以下命令,但它只提供ghi

set abc [regexp {([^/]*)$} $string match]

3 个答案:

答案 0 :(得分:2)

我认为您想要的表达式为/(.*)$,然后抓取群集组1作为结果。

答案 1 :(得分:1)

为什么在这个简单的案例中使用正则表达式?

只需在第一次出现/时分割字符串:

set str "abc/def/ghi"
string range $str [string first "/" $str]+1 end

答案 2 :(得分:1)

获取价值的最简单方法是:

regexp {/(.*)} $string -> match

该命令将指定您想要的字符串match,并且(有效地)生成一个布尔值作为结果,指示RE是否匹配(即,字符串中是否有/ ),允许您检测输入是否是假的。不需要尾部锚固RE; Tcl的RE引擎将从第一个/到字符串末尾贪吃。