[英]ruby regex split on last occurance of character
我对此有些困惑,我也不是1.8,所以我没有提前。
我有一堆看起来像这样的字符串:
"a/b/c/d/e/f 1/2/3"
我想变成:
"a/b/c/d/e" "f" "1/2" "3"
因此,基本上我希望它被空格开头之前的最后一个斜杠分开。 我觉得我可以正常执行此操作,但拆分似乎总是很奇怪。
1.8缺乏前瞻 ,没有前瞻 ! 你需要的只是这个:
str.split(/\/(?=[^\/]+(?: |$))| /)
此拆分模式匹配a)任意斜杠,其后跟非斜杠字符,直至下一个空格或字符串的末尾;以及b)任意空格。
def foo s
return [$1,$2] if s =~ /(.+)\/(\S)/
end
str = "a/b/c/d/e/f 1/2/3"
a = str.split /\s+/
a.collect { |e| foo e }.flatten
=> ["/a/b/c/d/e", "f", "1/2", "3"]
我分解了拆分并收集。 当然,您可以根据需要缩短此时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.