【问题标题】:How to get whole string after first slash(/) using regexp in tcl如何在 tcl 中使用正则表达式在第一个斜杠(/)之后获取整个字符串
【发布时间】:2013-11-07 22:16:51
【问题描述】:

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

想要的是这样的:

abc/def/ghi

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

我尝试使用以下命令,但它只给出ghi

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

【问题讨论】:

    标签: regex tcl


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      为什么在这个简单的情况下使用正则表达式?

      只在/的第一次出现处拆分字符串:

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

      【讨论】:

        【解决方案3】:

        获取值的最简单方法是这样的:

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

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

        【讨论】:

          猜你喜欢
          • 2017-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-09
          • 2018-07-31
          • 2022-01-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多