【问题标题】:How to write preg_replace_callback() patterns?如何编写 preg_replace_callback() 模式?
【发布时间】:2021-11-29 06:56:08
【问题描述】:

我正在使用 XML 并使用 preg_replace_callback()

我想到的一个问题是:我们如何编写preg_replace_callback() 模式?

例如,“/{{{\s*"\s*(.+)\s*"\s*}}}/”或“/(<a .*)href=(")([^"]*)"([^>]*)>/U”,这些模式有什么作用?这些模式是怎么写的?这里的字符是什么意思?

【问题讨论】:

标签: php html xml


【解决方案1】:

欢迎来到 Stackoverflow。这对我来说似乎是一个非常基本的问题,因此我想用一些场外资源来回答它,因为您已经了解了 Stackoverflow 并且可以自己搜索它(它是一个类似常见问题的问答网站):

  • 这些是,正如你正确地确定了你自己的,模式
  • 更具体地说,这些是 正则表达式 模式(或以这种方式调用)。
  • 具体而言,在 PHP 中使用 preg_replace(),它们是 Perl 兼容正则表达式 (PCRE) 方言。
  • preg_replace 前面的preg_* 代表(至少我是这样向自己解释的)Perl 正则表达式或 PHP 手册中所说的 “正则表达式(Perl 兼容)”,见https://www.php.net/pcre

这个模式是怎么写的?

如 PHP 手册中所述。 (没有双关语)

这里的字符是什么意思?

PHP 手册有一个 PCRE 语法的简短版本(它是介绍性的)。从那里开始阅读(请参阅PCRE Patterns (PHP Manual)。完整的语法记录在 PCRE 库本身中,您可以使用 PHP 找到(绑定)该库,例如 PCRE 2 manpage on the libraries homepage

如果您使用受支持的 PHP 版本,则为 PCRE2。如果不是,它可能会有所不同。尽管如此,这些模式的基础知识在 PHP 手册和 PCRE 网站上都有解释。它应该提供足够的文本以供阅读。

请记住,您始终可以创建自己的小型 PHP 脚本来尝试使用 PHP(因此使用此类模式)。

此外,还有可供研究的文献——即使在离线和(没有电能)白天(非常舒适!)时也是如此。

如果您在查找文献时运气不佳,请从在线和手头有一台打印机并打印出手册页中受益。

如果幸运的话,您的操作系统会附带pcre(3) 或类似地址的文档。

祝你好运,感谢您的提问!

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 2018-09-08
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2010-09-10
    相关资源
    最近更新 更多