我一直试图在Tcl中使用regexp在第一个斜杠之后获取所有字符。
想要的是:
abc/def/ghi
从上面的字符串我想要def/ghi
。
我尝试使用以下命令,但它只提供ghi
set abc [regexp {([^/]*)$} $string match]
答案 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引擎将从第一个/
到字符串末尾贪吃。