如何从右侧拆分字符串

时间:2013-12-07 07:01:24

标签: ruby string

如何通过','从右侧拆分字符串?从这个字符串:

str_a = "#37/1, New Ray Street, 24th mains,2nd cross, Bangalore Karnataka India"

我想要一个输出:

"#37/1, New Ray Street, 24th mains,2nd cross"

2 个答案:

答案 0 :(得分:6)

使用String#rpartition

str_a = "#37/1, New Ray Street, 24th mains,2nd cross, Bangalore Karnataka India"
str_a.rpartition(',')
# => ["#37/1, New Ray Street, 24th mains,2nd cross", ",", " Bangalore Karnataka India"]
str_a.rpartition(',')[0]
# => "#37/1, New Ray Street, 24th mains,2nd cross"

<强>更新

如果str_a不包含,,则上述代码将返回空字符串。如果这可能是个问题,请使用以下代码。

str_a = "#37/1"
head, sep, tail = str_a.rpartition(',') # => ["", "", "#37/1"]
sep == '' ? tail : head # OR   sep[0] ? head : tail
# => "#37/1"

答案 1 :(得分:0)

如果知道输入字符串格式是什么,@ falsetru建议是最好的,如果输入中根本没有逗号,它将返回空字符串。简单的正则表达式

str_a.gsub /,[^,]*$/, ''
在这种情况下,

将返回输入字符串intouch。此外,您还可以使用gsub!修改输入 inplace