2
A
回答
4
虽然你能做到这一点在理论上,正则表达式会非常复杂以至于无法维护。
2
它可以完成,但结果将是丑陋的。 真的需要使用正则表达式吗?
因此,无论如何:正如您正确观察,最初的622很简单。现在,如果...
- ...它从1开始,接着是26到99之间;或
- ...它以2..8范围内的某些值开始;或
- ...它以9开头,然后是0..25范围内的内容。
而一些是26和99之间,如果...
- 它始于2,其次是6和9之间的东西;或
- 它开始于范围2..9中的某些东西。
和范围0..25一样。
我会让你把这些东西放在一起,因为如果你打算在自己身上施加这样的事情(或者谁将会维护代码),你应该为自己找出它是多么的痛苦。请再考虑一下:你真的需要用RE而不是其他方式吗?
5
假设一个包含范围:
^622(12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])$
不过的RE是不是真的意味着数字任务,所以我劝你找到不同的解决方案。
2
虽然这可能是可能的,但正则表达式并不是真正的正确工具。最好是将字符串转换为数字,并使用正在使用的语言的正常数字比较。
3
^622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])$
说明:
前缀622
是常见的。删除它,我们需要一个正则表达式匹配126 - 925
:
范围126-925
可以拆分为:
RANGE REGEX
-----------------------------------------
126 - 129 12[6-9]
130 - 199 1[3-9][0-9]
200 - 899 [2-8][0-9][0-9]
900 - 919 9[0-1][0-9]
920 - 925 92[0-5]
显然,这是没有办法的办法去了解这项工作。一个简单的比较操作员将完成这项工作。
0
这是为我工作:
'^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)'
PS:如果你使用JavaScript你会发现有一个更好的解决方案。
相关问题
- 1. 需要一个正则表达式C#
- 2. 需要一个正则表达式
- 3. 正则表达式需要
- 4. 正则表达式需要
- 5. 为什么这个正则表达式需要一个空间?
- 6. 我需要哪种正则表达式?
- 7. 需要2组字符之间的php正则表达式
- 8. 我需要一个正则表达式来检测MailChimp标签
- 9. 我需要一个字符串的正则表达式
- 10. 我需要一个正则表达式来验证不是“NONE”
- 11. 我需要帮助想写一个JavaScript正则表达式
- 12. 也许我需要一个正则表达式?
- 13. 我需要一个正则表达式以下组合
- 14. 需要正则表达式模式吗?
- 15. preg_match /正则表达式格式需要
- 16. 需要一个正则表达式到一个多源
- 17. PHP - 我需要一些帮助我的正则表达式
- 18. 第1个字符到第8个字符之间需要正则表达式
- 19. 正则表达式我需要找到0和60之间的数字
- 20. 需要一个正则表达式模式
- 21. 需要一个正则表达式模式来获得括号
- 22. Python正则表达式:搜索两个表达式之间的表达式(也是正则表达式)
- 23. 需要使用正则表达式来获取两个标记之间的值
- 24. 正则表达式需要帮助
- 25. 需要li的正则表达式
- 26. 需要帮助的正则表达式
- 27. 正则表达式匹配需要@和
- 28. PHP - 正则表达式帮助需要
- 29. 需要帮助正则表达式
- 30. 需要正则表达式帮助!
+1既解决又说“不这样做!” – 2011-03-10 11:08:43
我想我只是证明了我自己的观点:第一次尝试时出现了一个错误。 – 2011-03-10 11:12:35
你没有考虑过'6222 **' – codaddict 2011-03-10 11:39:08