我的示例文本如下所示:
30","formatedMinDeliveryDate":null,"formatedMaxDeliveryDate":null,"actualDeliveryDate":null,"trackingNumber":"ID180135116580CN","shippmentTrackingUrl":"https:\u002F\u002Fwww.057872.m2749.l5119","localizedCurrency":null}},"actions":[{"label":"Leave feedback","icon":null,"value":null,"action":"link","actionParam":{"label":"LEAVE_FEEDBACK_FOR_SELLER","u
我想得到号码ID180135116580CN
而我在使用正则表达式时遇到这个问题。
文件已满,我正在这样做
out_file = File.open('public/orders.txt').each do |line|
p line[/(?<="trackingNumber":")[^"]*(?=")/]
end
但它只打印nil
并且不提取我正在寻找的数字。
regexp是错误的还是我需要以不同的方式遍历文件?
基本上在每trackingNumber
之后,我想得到之后引用的内容。
谢谢!
编辑:
根据评论
中的@WiktorStribiżew建议尝试了这一点p line.scan(/"trackingNumber"\s*:\s*"([^"]+)"/)
现在,我将所有的trackingNumbers都作为一个像这样的数组
[["UB08578YP"], ["UB085789YP"], ["ID180135791CN"], ["ID180135728CN"]]
如何修改它以使它们成为这样的单独行?
UB08578YP
UB085789YP
ID180135791CN
ID180135728CN
答案 0 :(得分:0)
如果您完全读取文件并在那里运行扫描
,则可能更简单{{1}}
它会将它们格式化。以你想要的方式。