2014-11-14 99 views
0

数据一起工作是...deliveryProfilID: 22261,offerID: '83627489',productKindID: '2',...正则表达式 - 字符串后面的数字不贪

这是不规则的字符串从中我要拉的offerID

所以我需要正则表达式的数字返回83627489

working one但它是可怕的:offerID\s{0,}:\s{0,}'(\d*)'\s{0,}

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

+1

更换'{0,}''用*'使得它已经不太可怕:) – sp00m 2014-11-14 13:08:40

回答

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

可能更具可读性吗?

但sp00m说...

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

已经是较好的。

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

阿维纳什Raj的建议可能是我的最爱,但括号内是没有必要的。

offerID\D*(\d*)' 

也可以。

+0

最后一个凉爽 – 2014-11-14 13:44:12

1

稍加修改将工作:

offerID\D*(\d*) 

不像.*\D*只匹配非数字字符。当然,您还可以进一步提高,如果需要:

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

更简单,'[^ \ d] *'会写成'\ D *' – 2014-11-14 13:12:26

+0

@AvinashRaj啊,对,编辑。 – 2014-11-14 13:13:16

+0

是我所需要的,但更好:'offerID [\ D] *(\ d *)' – 2014-11-14 13:17:42