晚上好,我正在學習PHP的正則表達式。我並沒有設法制造1比30和1比10的比賽。對於1比9,我認爲[1-2-3-4-5-6-7-8-9]或[1-9] {1},哪個更正確?由於事先:)簡單的PHP正則表達式
回答
1至9,有直接的正則表達式是[1-9]
。
對於1到10和1到30,應用規則的組合。
對於1到10時,可以使用這樣的:
10|[1-9]
對於1〜30,此正則表達式可用於:
(30)|([12][0-9])|([1-9])
或
(30)|([12]\d)|([1-9])
第一部分30
,會查找完全匹配,即30.
第二個pa rt [12]\d
或[12][0-9]
,會查找10到29之間的數字。
最後一部分[1-9]
會查找1-9之間的數字。
以下是一個單一的數字有效的正則表達式模式0廣告9之間:
[]
[0-9]
\d
以上全部是當量。
您的建議版本[1-2-3-4-5-6-7-8-9]
是不正確的。
要匹配1到30之間的數字,正則表達式是不是最好的工具,但如果你必須使用正則表達式,然後最簡單的正則表達式將是這樣的:
([012]?\d|30)
但是請注意,這也將匹配0
,所以它實際上是一個0-30模式。
如果你真的想要1-30,那麼它的更復雜:
([1-9]|[12]\d|30)
如果數字1-30是整個你要找的字符串,那麼不要忘記添加^
開始,並$
到模式的結尾來錨定它,以便它拒絕包含1-30加上其他字符的字符串。
我確實提到過,正則表達式是匹配數字的錯誤工具,對嗎?如果你可以避免使用正則表達式,那麼對你來說會更簡單。這只是一個if($var >= 1 && $var <= 30)
的情況。
希望有所幫助。
沒有邊界,50000會匹配 –
@EdsonMedina - 好的,但是,OP沒有說明是否是整個字符串,所以我不能給出任何界限。我只是給出了匹配他想要的字符串的那部分表達式。 – SDC
試試這個正則表達式:
30|[12]?\d
它將匹配1和30之間的數字,沒有前導零
- 1. 簡單的PHP正則表達式
- 2. 簡單的正則表達式PHP
- 3. 簡單的PHP正則表達式
- 4. PHP - 簡單的正則表達式
- 5. 簡單的PHP正則表達式
- 6. 簡單正則表達式PHP
- 7. 正則表達式:簡單的搜索正則表達式?
- 8. 正則表達式:簡單的Java正則表達式問題
- 9. 沒有正則表達式庫的簡單正則表達式?
- 10. 簡單的正則表達式模式
- 11. 正則表達式簡單的模式
- 12. 簡單的Python的正則表達式
- 13. 簡單的正則表達式的Javascript
- 14. 簡單的JavaScript正則表達式
- 15. 正則表達式的簡單URL
- 16. 簡單的正則表達式問題
- 17. 簡單的正則表達式問題
- 18. 簡單的正則表達式否定
- 19. 簡單的正則表達式
- 20. 簡單的正則表達式匹配
- 21. gsub中的簡單正則表達式
- 22. 簡單的正則表達式調整
- 23. 簡單的Java正則表達式不
- 24. 簡單的正則表達式C#
- 25. python中的簡單正則表達式
- 26. 一個簡單的正則表達式
- 27. 非常簡單的正則表達式
- 28. 很簡單的正則表達式
- 29. 一個簡單的正則表達式
- 30. 簡單的正則表達式匹配
'[1-9]'是正確的。要得到1到30,你需要這樣的東西:'[12]?\ d | 30' – hsan
不需要{1}。 –
您可能會對以下內容進行檢查:http://stackoverflow.com/questions/6560030/what-regex-can-i-use-to-validate-a-number-between-0-and-255 – Chris