繁体   English   中英

使用PHP preg_match_all的条件RgEx

[英]Conditional RgEx with PHP preg_match_all

只需选择条件正则表达式即可。

这是我有问题的...

我只想选择时间字符串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但不确定如何使regex :(

请帮帮我。

更新

感谢Lucas Trzesniewski和他的大力帮助。

我刚刚用此php代码解决了我的问题。

 $pattern = '/(?!["\'])\b\d{1,2}:\d{2}\b(?!["\'])/';
  preg_match_all($pattern,$content, $matches); 

在这种情况下,条件句对您无济于事。

最简单的方法是使用环顾四周:

(?<!["'])\b\d{1,2}:\d{2}\b(?!["'])

演示版

  • (?<!["']) (负向后)将确保前面的字符不是单引号或双引号
  • (?!["']) (负超前)将对以下字符执行相同的操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM