只需选择条件正则表达式。
这是我遇到的问题......
我只想选择02:00的时间字符串,但不要选择“02:00”或“02:00”之类的引号
我用来选择02:00或2:00正则表达式
$pattern = '/(\d{2}:\d{2})|(\d{1}:\d{2})/';
preg_match_all($pattern,$content, $matches);
但是选择这个也是“02:00”或“02:00”我不确定哪个正则表达式会用来跳过那个时间字符串。
我得到了这个http://www.regular-expressions.info/conditional.html但不确定如何制作正则表达式:(
请帮帮我。
更新
感谢Lucas Trzesniewski和他的帮助。
我刚用这个php代码解决了我的问题。
$pattern = '/(?!["\'])\b\d{1,2}:\d{2}\b(?!["\'])/';
preg_match_all($pattern,$content, $matches);
答案 0 :(得分:1)
在这种情况下,条件制定者对你没有多大帮助。
最简单的方法是使用lookarounds:
(?<!["'])\b\d{1,2}:\d{2}\b(?!["'])
(?<!["'])
(负面后卫)将确保前面的字符不是单引号或双引号(?!["'])
(负向前瞻)将对以下字符执行相同操作