[英]Regular Expression (PHP) => greater that or if not
可以使用正則表達式(php),例如'>'或'if not'¿
例如:我有一個5號字符串'XXXXX':'00054','47690','20593'......
我需要一個驗證的正則表達式:
我有這個:'/ ^ [0-9] {5} $ /'但不驗證大於'00001'!
我正在尋找像'>'或'如果不是00000'......
謝謝
PS:我知道可以用:if((int)$ string> 1)
當我堅持使用正則表達式時 - 我總是問自己的第一個問題是“我正在描述的是常規語言嗎?” - 回答這個問題的最簡單方法是嘗試繪制一個有限狀態機 - https://en.wikipedia.org/wiki/Finite-state_machine 。 在你的情況下,它是可能的,它將給你一個如何編寫正則表達式的答案。 一個簡單的有限狀態機就可以解決這個問題了 - 第一個字符是0還是1-9? 如果它的0向下走一條路徑(對下一個數字進行類似的檢查),如果它的1-9向下走另一條路徑(檢查之后是否還有4個數字)。
看看圖片的其余部分將如何發揮作用,我們可以創建一個如下所示的正則表達式:
[1-9][0-9]{4} | 0[1-9][0-9]{3} | 00[1-9][0-9]{2} | 000[1-9][0-9] | 0000[1-9]
PS上面的圖片是不完整的,只是為了展示如何啟動有限狀態機的圖示 - 我快速繪制它,因此它沒有雙圓圈來顯示“最終”狀態,樹不是全部低至5位數。 如果你有興趣,我可以完成樹的其余部分,但認為在這種情況下會有點過分。
我可以找出兩種方法:
/^(?!00000)\d{5}$/
首先檢查開始時間后面是否為5個零,然后搜索5個數字。
/^(?:[1-9]\d{4}|\d[1-9]\d{3}|\d{2}[1-9]\d{2}|\d{3}[1-9]\d|\d{4}[1-9])$/
這個檢查5個組合,每個組合在5個位置之一中包含一個非零數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.