【发布时间】:2015-06-08 02:38:14
【问题描述】:
嗨,我试图在将字符串转换为 PHP 中的正则表达式之前连接一个字符串,但问题是它没有按预期显示。我一直在用谷歌搜索,发现了preg_quote,问题是它运行得不好。
这是我的例子:
$mystring = "banana"; // put this to a variable assume this value is dynamic
$regex_str = "/^"$mystring"\-[a-z0-9]\-[a-z0-9]$/";
//Im expecting expecting /^banana\-[a-z0-9]\-[a-z0-9]$/
$regex = preg_quote($regex_str);
但我得到的是:
/\^banana\\\-\[a\-z0\-9\]\\\-\[a\-z0\-9\]\$/
并且总是返回错误的值。
【问题讨论】:
-
preg_quote()旨在在您添加到正则表达式的字符串上调用,而不是在添加后的整个正则表达式上调用。 -
您引用
$mystring并将其与正则表达式的其余部分连接起来。引用整个正则表达式没有任何意义。 -
那是你的实际代码吗?你应该得到一个错误。
-
@Anonymous 是的,我知道吗?这就是为什么我要问如何解决这个问题。谢谢
-
@loki9 不,我的意思是您显示的代码除了语法错误之外甚至不会产生输出。您实际使用的代码可能不同。
标签: php regex preg-quote