簡體   English   中英

正則表達式只匹配奇數或偶數

[英]Regular Expression to match only odd or even number

我有一個用戶可以輸入數據庫的文本條目列表,我需要使用正則表達式驗證這些輸入,因為其中一些很復雜。 字段之一的數字必須有間隙(即 10、12、14、16...)。 我的問題是,是否有一個 Regex 構造允許我只匹配偶數或奇數運行? 我知道我可以取出這個值並對其進行除法檢查,但如果可能的話,我希望有一個純正則表達式解決方案。

[編輯]

我最終使用的解決方案是對 JaredPar 的改編,因為除了只需要奇數或偶數之外,我還需要限制一個范圍(即 10-40 之間的所有偶數)。 下面是完成的正則表達式。

^[123][02468]$

奇數

"^\d*[13579]$"

偶數

"^\d*[02468]$"

帶有 , 和潛在空格分隔符的賠率運行

"$\s*(\d*[13579]\s*,\s*)*\d*[13579]$"

使用 , 和潛在的空格分隔符運行 Evens

"$\s*(\d*[02468]\s*,\s*)*\d*[02468]$"

正則表達式實際上並不太難設計,如果您考慮到可以通過僅查看最后一位數字來測試偶數或奇數,這也需要是偶數或奇數。 所以奇數運行的正則表達式可能是:

"^(\s*\d*[13579]\s*,)*(\s*\d*[13579]\s*)$"

對於偶數,將 [13579] 替換為 [02468]...

你的意思是這樣的:

/(\d*[02468](, *\d*[02468]))|(\d*[13579](, *\d*[13579]))/

或者你的問題的其他三種可能的解釋之一?

暫無
暫無

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

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