regex - 如何排除带有前面符号的字符串?
问题描述
我有两个简单的字符串:
s = "7/20-21 Hello, World."
s2 = "20-21 Hello, World."
什么是正确的正则表达式模式,只能在第二个字符串中找到数字?只有在没有前面的符号时,我才尝试提取“20-21”......下面的两个版本仍然从第一个字符串中得到“20-21”:
"[^/]?[0-9]{1,2}[/|-][0-9]{1,2}[\s]{1}"
"[^/][0-9]{1,2}[/|-][0-9]{1,2}[\s]{1}"
这个版本给我一个错误...
"(?<![/])[0-9]{1,2}[/|-][0-9]{1,2}[\s]{1}"
任何帮助,将不胜感激!
谢谢!
解决方案
您可以使用
(?:\s|^)[0-9]{1,2}[/-][0-9]{1,2}\s
查看正则表达式演示
细节
(?:\s|^)
- 空格 (\s
) 或 (|
) 字符串的开头[0-9]{1,2}
- 1 或 2 位数字[/-]
- 一个/
或-
[0-9]{1,2}
- 1 或 2 位数字\s
- 一个空格
推荐阅读
- mongodb - MongoDB按嵌入式文档结构分组
- datastax-enterprise - DSE 6.7 Alwayson SQL
- ios - Swift 集合视图单元格大于集合视图框架
- prometheus - Alertmanager:在触发警报时向特定 URL 发送发布请求?
- html - 如何使浮动李的高度相等
- javascript - 如何从文件中删除属性?
- python - 使用格式如下所示的字符串拆分元组
- swift - 斯威夫特:在这种情况下,如何防止索引超出范围
- android - 如何在 Flutter 中自动刷新 listView?
- android - 为什么导航抽屉图标不见了?