douzai8285 2016-02-08 15:14
浏览 24
已采纳

带有PHP preg_match_all的条件RgEx

Just have to select Conditional Regex.

Here is what i have problem....

I just want to select time string 02:00 but not with quotation marks like "02:00" or '02:00'

I am using to select 02:00 or 2:00 Regex is

$pattern = '/(\d{2}:\d{2})|(\d{1}:\d{2})/';
preg_match_all($pattern,$content, $matches); 

But is selecting this also "02:00" or '02:00' I am not sure which regex will use to skip that time string.

I got this http://www.regular-expressions.info/conditional.html But not sure how make regex :(

Please help me out.

UPDATE

Thanks for Lucas Trzesniewski and his Great Help.

I just resolved my issue with this php code.

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

1条回答 默认 最新

  • donglian8407 2016-02-08 15:16
    关注

    Conditionals won't help you much in this case.

    The simplest way is to use lookarounds:

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

    Demo

    • (?<!["']) (negative lookbehind) will make sure the preceding character is not single or double quote
    • (?!["']) (negative lookahead) will do the same for the following character
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数