2014-11-14 96 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