我有数百行代码,格式如下
00008#A=1#B=3334#C=23/03A#D=BA FRCT TL4 3/4-5/6 US#AVC=DD 2键以#开头,上面的行是:
A=1
B=3334
C=23/03A
D=BA FRCT TL4 3/4-5/6 US
AVC=DD 2这一行有许多不同的/更多的键和值。
目标是提取键和值。
使用红宝石,不用regex,我可以:
line.split("#")[1..-1].inject({}) do |hash, kv|
k, v = kv.split('=')
hash[k] = v
hash
end其中产出:
{"A"=>"1", "B"=>"3334", "C"=>"23/03A", "D"=>"BA FRCT TL4 3/4-5/6 US", "AVC"=>"DD 2"}但是我想知道在regex中是否可以这样做,因为一行可以有几十个键值/值,具有不同的值长度。
我的出发点是:(A)\w+
发布于 2020-11-16 19:57:36
下面的regexp将匹配一个#key=value
#([^=]+)=([^#]*)使用返回所有匹配项的函数。每个匹配中的捕获组分别是键和值。
https://stackoverflow.com/questions/64864798
复制相似问题