正则表达式 - 字符串后的数字不贪心

时间:2014-11-14 13:05:54

标签: regex

要使用的数据是...deliveryProfilID: 22261,offerID: '83627489',productKindID: '2',...

它是不规则的字符串,我必须从中提取offerID

的数字

所以我需要正则表达式来返回83627489

我得到了working one,但它很可怕:offerID\s{0,}:\s{0,}'(\d*)'\s{0,}

我想使用something like thisofferID.*(\d*),但它选择了很多。

2 个答案:

答案 0 :(得分:1)

稍加修改就可以了:

offerID\D*(\d*)

.*不同,\D*仅匹配非数字。当然,如果需要,您可以进一步改进它:

offerID:\D*'(\d*)'

答案 1 :(得分:0)

offerID[\s]*:[\s]*'(\d*)'

可能更具可读性?

但正如sp00m所说......

offerID\s*:\s*'(\d)' 

已经更好了。

和Avinash Raj的建议

offerID[\D]*(\d*)' 

可能是我的最爱,但括号不是必需的。

offerID\D*(\d*)'

也适用。