2

我一直试图在 Tcl 中使用正则表达式在第一个斜杠之后获取所有字符。

想要的是这样的:

abc/def/ghi

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

我尝试使用以下命令,但它唯一的给ghi

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

3 回答 3

3

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

于 2013-11-07T22:22:43.793 回答
1

获取值的最简单方法是:

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

该命令将分配您想要的字符串match,并将(有效地)生成一个布尔值作为结果,指示 RE 是否完全匹配(即/字符串中是否存在 a),从而允许您检测输入是否是伪造的。不需要对 RE 进行尾部锚定;/Tcl 的 RE 引擎会从字符串的开头到结尾贪婪地消耗。

于 2013-11-09T08:39:54.973 回答
1

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

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

set str "abc/def/ghi"
string range $str [string first "/" $str]+1 end
于 2013-11-07T22:24:35.023 回答