I got a string:
"1|2 3 4 oh 5 oh oh|e eewrewr|7|".
我希望能够获取第一个竖线(|)之间的数字,返回结果为“2 3 4 5”。
有人能帮我写正则表达式来实现吗?
这个可以工作吗?
"1|2 3 4 oh 5 oh oh|e eewrewr|7|".split('|')[1].scan(/\d/)
.join(' ')
来添加。 - Pesto.map!{|n| n.to_i}
怎么样?(个人而言,我喜欢改变原对象而不是获得新对象) - Swanand"1|2 3 4 oh 5 oh oh|e eewrewr|7|".split('|')[1].scan(/\d/)
# Will return ["2", "3", "4", "5"]
"1|2 3 4 oh 55 oh oh|e eewrewr|7|".split('|')[1].scan(/\d/)
# Will return ["2", "3", "4", "5", "5"]
# Just adding a '+' in the regex:
"1|2 3 4 oh 55 oh oh|e eewrewr|7|".split('|')[1].scan(/\d+/)
# Will return ["2", "3", "4", "55"]
如果你只想使用正则表达式...
\|[\d\s\w]+\|
然后
\d
但这可能不是最好的解决方案