【问题标题】:How to select everything after the 1st space regex如何在第一个空格正则表达式之后选择所有内容
【发布时间】:2015-09-12 02:59:08
【问题描述】:

我有一个简单的小字符串“Wed 09 Sept”,我想选择“09 Sept”

这将从第一个空格中取出所有内容:

\s(.*)(来自Regex to get everything after the first space

但它带有空间,我想摆脱它

【问题讨论】:

    标签: ruby regex


    【解决方案1】:

    获取该正则表达式的第一个捕获组:

    "Wed 09 Sept" =~ /\s(.*)/ 
    selection     = $1
    # => "09 Sept"
    

    =~ 运算符将模式与字符串匹配。 $1$2$3等变量指的是捕获组。

    【讨论】:

    • 谢谢。我不确定捕获组是什么或如何实现它
    • 它已经在您发布的正则表达式中。更多信息:regular-expressions.info/brackets.html
    • 这就是我想找的。那个“=~”是什么符号?另外,$ 符号是全局变量对吗?这段代码发生了什么?
    • 如果你在一个方法中这样做,你可以这样写selection[/\s(.*)/][$1]
    【解决方案2】:

    将第一个空格和其余的/(\s)(.*)/ 分组,例如:

    pry(main)> m = /(?'first'\s)(?'rest'.*)/.match 'Wed 09 Sept'
    => #<MatchData " 09 Sept" first:" " rest:"09 Sept">
    pry(main)> m[:rest]
    => "09 Sept"
    

    【讨论】:

      【解决方案3】:

      您可以使用\K 丢弃之前匹配的字符。

      ^\S*\s\K.*
      

      ^\S* \K.*
      

      \s\K.*
      

       \K.*
      

      \S* 匹配零个或多个非空格字符,\s+ 匹配一个或多个空格。 \K 丢弃先前匹配的字符,这些字符在最后打印出来。现在.* 将匹配所有剩余的字符。这将在决赛中打印出来。

      DEMO 1DEMO 2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 1970-01-01
        • 2016-04-05
        • 1970-01-01
        • 2021-01-31
        • 1970-01-01
        • 2022-01-05
        相关资源
        最近更新 更多