正则表达式标志

2022-03-22 00:00:00 regex php preg-replace

有没有人能解释一下‘e’标志的作用,或者把我链接到某个能做到这一点的地方?我通过谷歌找不到任何东西。

示例:

preg_replace("/a(b?)c/e", "search_foo_term('$1')", $str);

解决方案

e(PREG_REPLACE_EVAL)

如果此修饰符 如果设置了preg_place(),则preg_place()执行正常操作 中的反向引用的替换 替换字符串,将其计算为 PHP代码,并将结果用于 替换搜索字符串。单人 引号、双引号、反斜杠() 并且空字符将通过以下方式进行转义 替换项中的反斜杠 反向引用。仅preg_place() 使用此修饰符;它将被忽略 其他PCRE功能。

http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

给出此示例:

preg_replace("/a(b?)c/e", "search_foo_term('$1')", $str);

整个匹配项的替换将是当传递b?的匹配项时search_foo_term()返回的内容。

相关文章