我想用re
模塊匹配整數和浮點數。因此,如果有人類型下列輸入類型中的一種,應該驗證它是一個數字:正則表達式用逗號和點數匹配數字
- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000
現在我使用的是以下幾點:
"^[-+]?[0-9]+$"
任何幫助表示讚賞
我想用re
模塊匹配整數和浮點數。因此,如果有人類型下列輸入類型中的一種,應該驗證它是一個數字:正則表達式用逗號和點數匹配數字
- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000
現在我使用的是以下幾點:
"^[-+]?[0-9]+$"
任何幫助表示讚賞
對於給定的輸入這個表達式應該工作:
^(?:[+-]|\()?\$?\d+(?:,\d+)*(?:\.\d+)?\)?$
破碎:
^
- 啓動(?:
- 開始非捕獲組
[+-]
- 匹配+
或-
|
- OR\(
- 匹配(
)?
- 完非捕獲組(可選)\$?
- 匹配$
(可選)\d+
- 第1個或多個數字(?:
- 開始非捕獲組
,
- 匹配一個逗號\d+
- 第1個或多個數字)*
- 完非捕獲組(零個或多個發生)(?:
- 啓動非捕獲組
\.
- 匹配一個DOT\d+
- 匹配1位或更多位數)?
- 結束非捕獲組(可選)\)?
- 到底$
匹配文字)
(可選) - 結束嗨C.Molloy,這不符合預期,因爲如果它包含一個字符串,那麼它仍然匹配 - 這不是我想要的。 anubhava提供的解決方案更加完整。但感謝您的幫助! – Probs
真的很酷,謝謝! – Probs