我一直试图在 Tcl 中使用正则表达式在第一个斜杠之后获取所有字符。
想要的是这样的:
abc/def/ghi
从我想要的上面的字符串def/ghi
。
我尝试使用以下命令,但它唯一的给ghi
set abc [regexp {([^/]*)$} $string match]
我认为您想要的表达式是/(.*)$
,然后将集群组 1 作为您的结果。
获取值的最简单方法是:
regexp {/(.*)} $string -> match
该命令将分配您想要的字符串match
,并将(有效地)生成一个布尔值作为结果,指示 RE 是否完全匹配(即/
字符串中是否存在 a),从而允许您检测输入是否是伪造的。不需要对 RE 进行尾部锚定;/
Tcl 的 RE 引擎会从字符串的开头到结尾贪婪地消耗。
为什么对这个简单的案例使用正则表达式?
只需在第一次出现时拆分字符串/
:
set str "abc/def/ghi"
string range $str [string first "/" $str]+1 end