我可能在我的正则表达式知识中有一个漏洞.
如果我试图在字符串中查找可能在数字范围内的项目"item [355-502]",那么有一种简单的方法可以做到这一点.据我所知,我必须做类似的事情
(35[5-9]|3[6-9][0-9]|4[0-9][0-9]|50[0-2])
Run Code Online (Sandbox Code Playgroud)
我知道这也匹配3550-5020等,应该没问题
这表明这不可能以任何其他方式完成,这是对的.我在PHP中是否有更简洁的方法来做到这一点?
这是一个数字问题而不是字符串问题,所以我担心你的解决方案并不完全在正则表达式中!
您需要解析数字,然后执行数字比较,例如:
$input = whatever(); # gets something like "item[456]"
Run Code Online (Sandbox Code Playgroud)
...然后匹配以下模式:
preg_match("/item\[(\d+)\]/", $input, $match);
Run Code Online (Sandbox Code Playgroud)
...将数字存储在内存中,然后:
if($match[1] >= 355 and $match[1] <= 502){...
Run Code Online (Sandbox Code Playgroud)
检查数字是否在范围内.
| 归档时间: |
|
| 查看次数: |
6056 次 |
| 最近记录: |