gpt4 book ai didi

php - php的正则表达式解决方案

转载 作者:行者123 更新时间:2023-12-04 06:27:30 27 4
gpt4 key购买 nike

我试图自己解决这个问题(甚至买了一本 Kindle 书!),但我在 php 中为反向引用而苦苦挣扎。

我想要的是下面的例子:

var $html = "hello %world|/worldlink/% again";

output:
hello <a href="/worldlink/">world</a> again

我试过这样的东西:
preg_replace('/%([a-z]+)|([a-z]+)%/', '<a href="\2">\1</a>', $html);

但没有喜悦。

请问有什么想法吗?我相信有人会发布确切的答案,但我也想要一个解释 - 这样我就不必一直问这些问题了:)

最佳答案

这是一个根据提供的 OP 数据/信息工作的版本(使用非斜杠分隔符以避免转义斜杠):

preg_replace('#%([a-z]+)\|([a-z/]+)%#', '<a href="\2">\1</a>', $html);

使用非斜杠定界符,将减轻转义斜杠的需要。

输出:
hello <a href="/worldlink/">world</a> again

说明

为什么你的不起作用。先上 |OR运算符,并且在您的示例中,应该进行转义。其次,因为您使用的是 /的或期望斜杠最好使用非斜杠分隔符,例如 # .第三,斜线需要添加到允许的匹配列表中。如前所述,您可能希望包含更多选项,因为任何类型的带有数字的单词下划线句号连字符都将失败/破坏脚本。希望这就是您正在寻找的解释。

关于php - php的正则表达式解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860207/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com