gpt4 book ai didi

ruby - Ruby 中的正则表达式用于字符串中的多个拆分

转载 作者:数据小太阳 更新时间:2023-10-29 08:23:20 25 4
gpt4 key购买 nike

我需要一些完善正则表达式的建议。我试图用一个表达式将一个字符串分成三部分。行来自格式如下的文本文件:

25 red delicious apples at 0.75 

其中第一部分是数量,第二部分是商品名称,第三部分是每件商品的价格。我使用的代码是这样的:

File.open('basket.txt').each_line do |line|
item = line.split(/(\d+)\s|\sat\s/, 3)

这会在我想要的地方拆分一个字符串,但它会创建一个长度为 4 的项目数组(第一个索引包含 nil)。我还想去掉 float 末尾的换行符。

最佳答案

你可以试试这个:

txt = "25 red delicious apples 0.75"
pattern = Regexp.new('(?<=\d)\s|\s(?=\d)')
puts txt.split(pattern)

或与 irb:

'25 red delicious apples 0.75'.split(/(?<=\d)\s|\s(?=\d)/)

用“在”:

'25 red delicious apples at 0.75'.split(/(?<=\d)\s|\sat\s(?=\d)/)

循环示例:

pattern = Regexp.new('(?<=\d)\s|\sat\s(?=\d)')
File.open('basket.txt').each_line do |line|
items = line.split(pattern)
end

关于ruby - Ruby 中的正则表达式用于字符串中的多个拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19559936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com