2010-05-18 29 views
5

seperator thập phân là một dấu chấm, tiếp theo là tối đa một chữ số! Không phạm vi chỉ định.RegEx mẫu phù hợp với các giá trị tích cực hay tiêu cực (ví dụ: "1.2", "-2.8", "7.8", -22,8")

Thanks guys!

+0

Có tiếng địa phương khác nhau của biểu thức thông thường. Bạn sử dụng nó trong bối cảnh nào? – tangens

+0

Tôi muốn sử dụng nó trong Javas String.matches() phương pháp – tzippy

+0

hiện nó cần phải phù hợp với toàn bộ danh sách các số hoặc chỉ một số thập phân? – Winter

Trả lời

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

nếu phần thập phân là không bắt buộc, và

^-?\d+\.\d$ 

nếu nó yêu cầu :)

+0

Bạn quên rằng dấu chấm là một ký tự đặc biệt. – ZyX

+0

Hah, đủ công bằng .. cảm ơn vì điều đó. Cố định –

+0

Cảm ơn rất nhiều! Hoạt động tốt! – tzippy

7

Đơn giản: -?\d+\.\d

2

Không có khả năng có liên quan trong trường hợp này, nhưng đừng quên rằng "." Không phổ biến làm dấu phân cách thập phân. Nhiều nước châu Âu sử dụng "" vì vậy bạn có thể thích để có được một trong những sử dụng từ ngôn ngữ:

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

(Xem thêm: http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormatSymbols.html#getDecimalSeparator)

+0

Một điểm rất hợp lệ, và đó có thể là một bất ngờ khó chịu cho các nhà phát triển Bắc Mỹ. – Timothy

Các vấn đề liên quan