RegEx - Fiyat Ayıklama nasıl?

3 Cevap php

Nasıl şu dizeden tutarı özü olacaktır

"Bazı metin buraya gitmek ve daha fazla ve daha sonra bazı fiyatı 34,03 $ olacak ama bu dize sona erecek anlamına gelmez olacak"

Ben de hiçbir kuruş varsa ayıklamak istiyorum ... 34,03 $ ayıklamak istiyor

"Bazı metin buraya gitmek ve daha fazla ve daha sonra bazı fiyatı ise 34 $ olacak ama bu dize sona erecek anlamına gelmez olacak"

Burada 34 $ ayıklamak istiyorum

3 Cevap

Ben regex-gurusu değilim, ama RegExr ile aşağıdaki kamçılamak başardı.

/(\$[0-9]+(\.[0-9]{2})?)/

Maçlar $35.03 ve $35. Gibi formatları kabul etmek $35,000.52 eklemek gerekir ,

/(\$[0-9,]+(\.[0-9]{2})?)/

Bu büyük olasılıkla üzerine geliştirilmiş olabilir, ama benim ön testler, gayet güzel çalışıyor.

Belirli bir regex motoru söz olmadığından, bu biraz ayarlamak gerekebilir:

/(\$\d+(\.\d+)?)/

ne bu işleçleri hakkında: \ $ [0-9.] + veya \ $ ([0-9.] +) $ şerit

basit ama oldukça çok istediğini, hatta bu gibi şeyler yakalar yapar: $ 1,450.8934 veya $ 14,343

Tabii dezavantajı o da $ 34.54.23 yakalamak istediğinizi olurdu

Sadece iki ondalık yakalamak istiyorsanız ya:. \ $ [0-9] + [0-9] {2} bu 5,234565 $ arasında 5,23 $ parçasını yakalamak istiyorum

Eğer preg_match'in veya preg_match_all ile kullanabilirsiniz.

Seni görmek