为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
智慧大石 2021-10-22 10:40:07
如何检查ora 之后的第一个字符/是否为 a ??$str = 'some/text/?goes/here?/andhere?/?'到目前为止,我设法检查了/:preg_match_all('/\/(?=\?)/', $str, $matches)这符合/?模式。现在我如何使它也匹配?/?谢谢!
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

如果您的 PHP 版本支持它,则有“lookbehinds”和lookaheads,如下所示:

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

(Lookbehind 可能已经在 PHP 中使用了很长时间,甚至可能从一开始。我感到有点不确定的唯一原因是这些天我的大部分工作都是在 JavaScript 中完成的,而现在的 JavaScript 仍然不支持 Lookbehind许多网络浏览器。)


查看完整回答
反对 回复 2021-10-22
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我想出了一个更清洁的解决方案:

(\W)(?=\W)

基本上这意味着:如果在特殊字符之后有任何特殊字符,则为真。

所以这一切都是真的: ?/ /? ?/?

警告:如果您只是在搜索特定的特殊字符,请不要使用它,因为此正则表达式会检查紧随其后具有任何特殊字符的任何特殊字符!

但就我而言,我不介意,我不希望任何特殊角色紧随其后,/所以它甚至比我想要的还要好。


查看完整回答
反对 回复 2021-10-22
  • 3 回答
  • 0 关注
  • 317 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信