就像我在標題中所說的那樣,我很難寫出這個特殊的正則運算式。任何幫助將非常感激。
我試圖解決這個問題的最佳嘗試是寫這個:
^([0-9]*[1-9][0-9]*)*[02468]$
但是這個正則運算式不能識別像“002”這樣的數字。然后我試過這個:
^([0-9]*[1-9][0-9]*)*[02468]*[02468]$
現在正則運算式識別“002”,但也識別“000”(只有零),我無法避免這種情況發生。
總之,我在撰寫一個可以識別正偶數(包括前導零,但不包括“000” - 只有零的數字)的正則運算式時一次又一次地失敗,例如:
2、001234、00123400、002、20、16等
先感謝您。
uj5u.com熱心網友回復:
您可以對任何數字使用積極的前瞻,除了0:
^(?=.*[1-9])[0-9]*[02468]$
(?=.*[1-9])- 任何數字的正向前瞻,除了0[0-9]*- 任何數字重復 0 次或更多次[02468]- 任何偶數
演示
uj5u.com熱心網友回復:
您可以匹配至少一個不為零的數字,或匹配至少 2 個數字,其中第一個數字是 1-9
^(?:[0-9]*[2468]|0*[1-9][0-9]*[02468])$
解釋
^字串的開始(?:非捕獲組[0-9]*[2468]匹配可選數字 0-9,然后是其中之一2468|或者0*[1-9][0-9]*[02468]匹配可選零,一個數字 1-9 可選數字 0-9,然后是其中一個2468
)關閉非捕獲組$字串結束
正則運算式演示
或者,您不僅可以使用否定前瞻斷言字串中的零(?!0 $)
^(?!0 $)[0-9]*[02468]$
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532659.html
標籤:正则表达式
下一篇:具有大量資料的網路爬蟲表
