我有一个字符串我想拆分:D017209D019169D019014到D017209,D019169和D019014之间逗号。简单的字符串拆分?
如果我有
a = D017209D019169D019014
b = a.slice("D")
puts b
我的结果是这样的:
017209
019169
019014
我缺少什么?
我有一个字符串我想拆分:D017209D019169D019014到D017209,D019169和D019014之间逗号。简单的字符串拆分?
如果我有
a = D017209D019169D019014
b = a.slice("D")
puts b
我的结果是这样的:
017209
019169
019014
我缺少什么?
"D017209D019169D019014".scan(/D[^D]*/)
Scan将返回所有匹配的数组,这正是您想要的。正则表达式仅仅意味着D,接下来是零个或更多的非D。
添加一个连接在逗号中加入 “D017209D019169D019014”.scan(/ D [^ D] * /)。join(“,”)将生成“D017209,DD019169,DD019014” – 2010-07-10 01:35:54
字符串拆分函数将始终删除终止符。你想要以'D'开头的子串。一个正则表达式将是最好这里
a.scan(/D[0-9]*/).each do |line|
#do stuff with each piece of data
end
顺便说一句,我在我的评论说,我绝对不是一个正则表达式的专家,真的连不好。所以,如果有人发现一个大的整体让我知道,但它应该与你有的输入。
一个字符串拆分函数将始终删除终止符。你想要以'D'开头的子串。一个正则表达式在这里是最好的,但老实说,我很少使用它们,我会让其他人提出答案,以防我犯了一个错误(没时间测试) – 2010-07-10 00:01:25
一般的经验法则:当你知道你使用'split'时想要扔掉,当你知道你想保留什么时使用正则表达式。 – 2010-07-10 16:14:32