2010-05-18 15 views
5

ondalık ayırıcı maksimum tek rakam ile devam eden bir nokta vardır! Hiçbir aralık belirtilen .RegEx Desen (örneğin, "1.2", "-2.8", "7.8", -22,8")

teşekkürler çocuklar!

+0

Eğer yerel ayarlarından kullanımda tane tercih edebilirsiniz böylece pek çok Avrupa ülkesi "" kullanın. Hangi bağlamda kullanıyorsunuz? – tangens

+0

Javas String.matches() yönteminde kullanmak istiyorum – tzippy

+0

Tüm sayı listesiyle mi yoksa yalnızca bir ondalık sayıyla mı uyuşması gerekiyor? – Winter

cevap

17
^-?\d+(\.\d)?$ 

ondalık kısmı isteğe bağlıysa ve

^-?\d+\.\d$ 

gerekli olduğunu eğer :)

+0

Noktanın özel bir karakter olduğunu unutmuşsun. – ZyX

+0

Hah, yeterince adil .. bunun için teşekkürler. Sabit –

+0

Çok teşekkürler! Sadece iyi çalışıyor! – tzippy

7

Basit: -?\d+\.\d

2

Bu durumda önemli olma ihtimali yoktur, ancak "." Ondalık ayırıcı olarak evrensel olmadığını unutmayın.

DecimalFormat df = (DecimalFormat) NumberFormat.getInstance(); 
String separator = df.getDecimalFormatSymbols().getDecimalSeparator(); 

(Ayrıca bakınız:: http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormatSymbols.html#getDecimalSeparator) Düzenli ifadelerin farklı lehçeleri vardır

+0

Çok geçerli bir nokta ve Kuzey Amerikalı geliştiriciler için kötü bir sürpriz olabilir. – Timothy