簡體   English   中英

正則表達式匹配僅由一個空格分隔的雙打

[英]Regex to match a doubles separated by one space only

我正在嘗試檢查匹配項,因為用戶在文本框中輸入了值。

文本框的有效值如下:

"-"

"-5.5"

"-5.5 6.5 7.5"

無效將是

"-5.5   6.5    "

編輯:^在-5.5和6.5之間有一個以上的空格,但是由於某些原因沒有顯示。

"3.5 "

^(-?)(\d+\.?\d?)\s?(-?\d+\.?\d?)

請記住,負號是唯一允許使用的特殊字符(小數點除外)。

謝謝。

您可以使用此:

^-(?:\d+[.]\d+(?:[ ]\d+[.]\d+)*)?$

說明:

^   
  -                   // Match '-'
  (?:                 // An optional non-capturing group
      \d+[.]\d+       // Match pattern - 14.45
      (?:             // A 0 or more times repeating Non-capture group
         [ ]          // A space
         \d+[.]\d+    // Pattern matching - 14.56
      )*              
  )?    
$    

我認為這是您要尋找的:

^(-|-?\d+\.?\d?([ ]-?\d+\.?\d?)*)$

這將匹配單個連字符或任意數量的以空格分隔的正數或負數,並帶有可選的小數點,且最多至一位數。 這將允許使用"5.5 6.5""-5.5 -6.5" (您的問題未指定是否應與之匹配)

您可以在這里進行測試。


更新資料

這將允許更多的匹配項,但是滿足了在用戶鍵入時支持每個有效序列的新要求。 當然,它允許甚至更多,因為不可能確定無效輸入和僅是不完整的輸入之間的差異(例如-5 - )。

^(-?(\d+\.?\d?( |$)|$))*$

您可以在這里進行測試。

您可以嘗試以下方法:

^(-(\d+\.\d+)*([ ]\d+\.\d+)*)$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM