![](/img/trans.png)
[英]Java - regexp - capture digits but only if not preceded by a comparator
[英]Java RegExp for a separated group of digits
我正在嘗試編寫一個正則表達式驗證:1到99之間的一組(或多個)數字,中間用|
隔開|
或,
(可以組合使用)
例
必須接受:
1
10
1,2,3|5|10,20|30
1|5
必須拒絕:
1,
10,,
1,2,3!5
對於數字組,其直截了當: [1-9][0-9]
。 對於其余部分,這仍然是個謎。
題
有人可以協助提出正確的正則表達式嗎?
^[1-9][0-9]?(?:[,|][1-9][0-9]?)*$
說明:
^ # Start of string
[1-9][0-9]? # Match a number between 1 and 99
(?: # Start of optional capturing group:
[,|] # Match one separator
[1-9][0-9]? # and a number 1-99
)* # any number of times (including 0)
$ # End of string
\d([,|]?\d)*
是表示的可能候選者,它表示重復至少一個或多個數字,並由{ ','
, '|'
任意字符分隔開(可選- [,|]
后的?
表示可選) '|'
}。
證明:
,
或|
在字符串的開頭或結尾。 參見演示進行測試。
如果您想逐行接受它,拒絕以分隔符char開頭或結尾的內容,只需將regexp錨定到^
和$
到行的開頭/結尾。 就像在demo2中一樣 。
^\d([,|]?\d)*$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.