my-test-string-4-23
从上面的字符串中如何仅提取仅my-test-string
我尝试to_s方法,但它按原样返回整个字符串。
仅将其拆分为数字,split 返回一个数组,然后 gsub 删除最后一个"-"
str = "my-test-string-4-23"
str.split(/(d+)/)[0].gsub(/-$/, '')
会回来
"my-test-string"
your_string.match('[\D-]')[0].[0..-1] 可能有效。它将返回非小数和短划线的第一个实例,然后删除最后一个 -