我正在尝试阅读一些 php 代码,并想知道为什么 preg_replace 总是有斜线。在我用 C++ 编写的正则表达式中,我没有做同样的事情,我想知道为什么
PHP:preg_replace('/blah/', '', $str)
但在 C++ 中,我会用字符串制作一个正则表达式"blah"
我可以在这里澄清一下吗?开始和结束斜线有什么用?谢谢
它们只是正则表达式分隔符。来自Delimiters 的 PHP 手册文档:
定界符可以是任何非字母数字、非反斜杠、非空白字符。
常用的分隔符是正斜杠 (
/
)、井号 (#
) 和波浪号 (~
)。以下是有效分隔模式的所有示例。
它们是分隔符,允许您添加修饰符,例如 /blah/i 用于不区分大小写的正则表达式。
据我所知,斜杠的使用来自 perl 或 shell/sed。
在 php 中,它们不是强制性的,因为您可以使用其他字符。例如,“!blah!i”也可以。还有一种带括号的特殊语法,因为您不需要转义它,所以更不容易出错:“{blah}i”。