正则表达式检查给定字符前后的第一个字符

如何检查ora 之后的第一个字符/是否为 a ?

$str = 'some/text/?goes/here?/andhere?/?'

到目前为止,我设法检查了/

preg_match_all('/\/(?=\?)/', $str, $matches)

这符合/?模式。现在我如何使它也匹配?/

谢谢!


智慧大石
浏览 318回答 3
3回答

MM们

如果您的 PHP 版本支持它,则有“lookbehinds”和lookaheads,如下所示:preg_match_all('/(?<=\?)\/|\/(?=\?)/', $str, $matches)(Lookbehind 可能已经在 PHP 中使用了很长时间,甚至可能从一开始。我感到有点不确定的唯一原因是这些天我的大部分工作都是在 JavaScript 中完成的,而现在的 JavaScript 仍然不支持 Lookbehind许多网络浏览器。)

猛跑小猪

我想出了一个更清洁的解决方案:(\W)(?=\W)基本上这意味着:如果在特殊字符之后有任何特殊字符,则为真。所以这一切都是真的:&nbsp;?/&nbsp;/?&nbsp;?/?警告:如果您只是在搜索特定的特殊字符,请不要使用它,因为此正则表达式会检查紧随其后具有任何特殊字符的任何特殊字符!但就我而言,我不介意,我不希望任何特殊角色紧随其后,/所以它甚至比我想要的还要好。
打开App,查看更多内容
随时随地看视频慕课网APP