Ruby Regex gsub -字符串之后的一切



我有一个像这样的字符串:

test:awesome my search term with spaces

我想立即将test:后面的字符串提取到一个变量中,将其他所有内容提取到另一个变量中,因此我最终将awesome在一个变量中,my search term with spaces在另一个变量中。

逻辑上,我要做的是将匹配test:*的所有内容移动到另一个变量中,然后删除第一个:之前的所有内容,留下我想要的内容。

目前我使用/test:(.*)([s]+)/来匹配第一部分,但我似乎不能正确地得到第二部分。

正则表达式中的第一个捕获是贪婪的,并且匹配空格,因为您使用了.。而不是尝试:

matches = string.match(/test:(S*) (.*)/)
# index 0 is the whole pattern that was matched
first = matches[1] # this is the first () group
second = matches[2] # and the second () group

使用如下:

/^test:(.*?) (.*)$/

也就是说,匹配"test:",然后匹配一系列字符(非贪婪),最多一个空格,再匹配另一系列字符到行尾。

我猜你想在第二次匹配之前删除所有的前导空格,因此我在表达式中有s+。否则,从表达式中删除s+,您将得到您想要的:

m = /^test:(w+)s+(.*)/.match("test:awesome my search term with spaces")
a = m[1]
b = m[2]
http://codepad.org/JzuNQxBN

相关内容

  • 没有找到相关文章

最新更新