我有一个字符串,我想获取下划线之间的子串。
输入字符串示例: hold_sim_D_C3_1_one_aoi
所需输出子字符串: sim、D、C3、1、1
发布于 2017-03-10 05:14:36
您可以将split与splat assignment一起使用,以便忽略第一个和最后一个单词:
head, *words, tail = "hold_sim_D_C3_1_one_aoi".split('_')
p words
#=> ["sim", "D", "C3", "1", "one"]如果你不需要head或tail,你可以使用:
_, *words, _ = "hold_sim_D_C3_1_one_aoi".split('_')或
words = "hold_sim_D_C3_1_one_aoi".split('_')[1..-2]当字符串包含的下划线少于2个时,words将为空数组。
由于您尝试使用正则表达式,因此可以使用positive lookarounds:
"hold_sim_D_C3_1_one_aoi".scan(/(?<=_).*?(?=_)/)
#=> ["sim", "D", "C3", "1", "one"]https://stackoverflow.com/questions/42705214
复制相似问题