簡體   English   中英

正則表達式,用於空格和整數,但不帶“雙負號”

[英]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.

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