RegEx:如何匹配每个" ="之后的第二个空格

时间:2015-07-10 09:00:09

标签: ruby regex

我有以下字符串,我需要在每个" ="之后将它拆分到第二个空格。字符。我如何编写正则表达式?我在Ruby工作。

"item1 = 10p item2 = 20p item3 = £1.10 item4 = 25p item5 = £2.94"

目标是拥有一个如下所示的数组:

["item1 = 10p", "item2 = 20p", "item3 = £1.10"]等。

2 个答案:

答案 0 :(得分:2)

\S+\s*=\s*\S+

更容易抓住比赛而不是分裂。参见演示。

https://regex101.com/r/hR7tH4/5

如果您仍想分开使用

(?<!=)\s+(?!=)

参见演示。

https://regex101.com/r/hR7tH4/6

答案 1 :(得分:2)

使用vks建议的正则表达式,您将使用Ruby的scan方法创建所需的数组"string".scan(/regex/)

irb(main):001:0> "item1 = 10p item2 = 20p item3 = £1.10 item4 = 25p item5 = £2.94".scan(/\S+\s*=\s*\S+/)
=> ["item1 = 10p", "item2 = 20p", "item3 = £1.10", "item4 = 25p", "item5 = £2.94"]