如何在第一空间正则表达式之后选择所有内容

时间:2015-01-17 13:45:31

标签: ruby regex

我有这个简单的小字符串" 9月9日星期三",我想选择" 09年9月"

这将从第一个空间开始:

\ s(。*)(从Regex to get everything after the first space开始)

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

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

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

^\S*\s\K.*

OR

^\S* \K.*

OR

\s\K.*

OR

 \K.*

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

DEMO 1 DEMO 2

答案 2 :(得分:0)

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

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