[英]Regular expression for spaces and integers, but no 'double negative' sign
嘗試為僅包含數字和單個空格(但開頭和結尾沒有空格)的字符串查找正則表達式,例如:
“ 1 2 3 -4”->接受
“ 1 2 3 -4”->不接受
到目前為止,一直在使用:
^\S+[-?\d ]*\b$
但是,它仍然接受以下字符串:
由於雙負數和雙空格,不應接受“ 1 2 --3”。
請注意,數字可以是任何整數。
有什么幫助嗎?
謝謝
^(?:-?\d+ )*(?:-?\d+)+$
^
在行首處聲明位置 (?:-?\\d+ )*
匹配以下任意次數
-?\\d+
匹配零個或一個-
字符,后跟一個或多個數字,后跟一個空格字符 (?:-?\\d+)+
匹配零個或一個-
字符,后跟一個或多個數字 $
在行尾聲明位置 這將起作用:
^-?\d+(?:[ ]-?\d+)*$
注意
+
量詞僅應用於\\d
表達式。 Matcher.matches()
來匹配單行字符串,則實際上並不需要錨點。 嘗試這個:
^\S+( (-?)[\d]+)+\b$
甚至更好:
^\S+( ((-?)\d+))+\b$|^\d$
為了也匹配個位數
編輯(請參閱評論):
這應該是一個更好的版本(刪除了領先的\\ S)
^\d( (-?)[\d]+)*\b$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.