php - RegEx:不包括特定数字的数字范围
问题描述
- 使用 PHP
我正在努力寻找有关如何使用正则表达式匹配一系列数字但不包括一个数字的答案
即:我正在寻找任何匹配 - AM19/0601 - AM19/0805(但不是 AM19/0803)
我正在使用它来查看是否有任何匹配项:
AM19/6XX AM19/7XX AM19/8XX
/AM19\/0[678]
如:
if (preg_match('/AM19\/0[678]/', $perm) === 0) {
//do whatever
}
但是如何“排除”AM19/803 选项以不返回/或包含在匹配/搜索中?
解决方案
您可以在您的正则表达式中使用否定的前瞻断言:
~\bAM19/0(?!803)[678]\d{2}\b~
(?!803)
在这里,我们在匹配后有一个否定的前瞻,如果在输入后立即出现19/0
,则匹配失败。803
19/0
另请注意,通过使用备用正则表达式分隔符~
,您可以避免/
在正则表达式中转义。
推荐阅读
- node.js - 谷歌云调度程序为 16 19 19W 1/5 抛出无效的 cron 表达式错误?
- javascript - 在 Ramda 中有条件地根据另一个数组/字符串过滤一个数组
- wordpress - WordPress/Gutenberg - 加载编辑器后打开面板
- javascript - 轮播多引导列同步?
- java - 在本地与全局声明和实例化变量?
- apache-kafka - 如何摄取为 splunk 创建的 Kafka 文本文件?
- testing - 多个“简单”期望的最佳实践 RSpec 示例格式化
- node.js - Map box Api 邮编问题
- spring-boot - 为什么当我将 ssl 添加到我的 springboot 项目时,磁盘缓存在浏览器中不起作用?
- android - Android ViewModel 中的 Kotlin 支持属性