正则表达式+通配符中的PHP多个值

利维坦

我只想强调,在问这个问题之前,我已经阅读,尝试和失败了很多。我可以看到类似的问题,但不能完全重复。

我需要找到一个值:

  • 可能在任何情况下都可以。
  • 能否结束完全随机的事物,例如“蛋糕好吃”
  • 可能包含或可能不包含在/ slashes /中

这是我目前正在做的:

  if ( $name == '/cake/' || $name == '/CAKE/' || $name == '/Cake/' || $name == '/CaKe/' || $name == 'CAKE' || $name == 'cake' { 

这就是我想要做的:

if(preg_match == (cake:) *(\([a-zA-Z]+\).+){

不能完全正常工作。

马里奥

您基本上是在寻找不区分大小写的Cake然后只使用i标志

  preg_match("~ Cake ~xi", $name)
                       ↑

如果您还想匹配可选的/斜杠,请添加一个替代名称:

  preg_match("~ /Cake/  |  \b Cake \b ~xi", $name)
                ↑    ↑      ↑       ↑

请注意\b未封闭蛋糕的边界标记一词Cakeriky,例如,您与之不匹配

  1. 如果要Cake放在字符串的开头,则需要一个^marker

     preg_match("~ ^  (/Cake/  |  \b Cake \b) ~xi", $name)
                   ↑
              start anchor
    
  2. 如果您还想在此后强制执行某些文本(并且不是可选的/忽略的),则添加另一个占位符:

     preg_match("~ ^  (/Cake/  |  \b Cake \b)   .*\w.* ~xi", $name)
                                                   ↑
                                          at least one word char
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章