我只想强调,在问这个问题之前,我已经阅读,尝试和失败了很多。我可以看到类似的问题,但不能完全重复。
我需要找到一个值:
这是我目前正在做的:
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
,例如,您与之不匹配。
如果要Cake
放在字符串的开头,则需要一个^
marker。
preg_match("~ ^ (/Cake/ | \b Cake \b) ~xi", $name)
↑
start anchor
如果您还想在此后强制执行某些文本(并且不是可选的/忽略的),则添加另一个占位符:
preg_match("~ ^ (/Cake/ | \b Cake \b) .*\w.* ~xi", $name)
↑
at least one word char
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句