PHP中的正则表达式捕获组

时间:2013-02-13 16:16:14

标签: php regex capture-group

我有点超出我的深度,但我试图让用户编写链接,与StackOverflow格式化链接的方式完全不同。

理想情况下,当用户在文本区域中输入[text to link here][23]时,当该信息从数据库写入页面时,他们将以<a href="path/to/img/id/23">text to link here</a>结束。

我失败的部分是如何从匹配模式中提取text to link23

这是pattern I'm using,但使用此preg_replace只允许我替换整个字符串,而不是对其进行操作。我在使用preg_replace时可能会弄错。

2 个答案:

答案 0 :(得分:2)

您可以使用preg_replace_callback进行操作,但即使这样也是不必要的:

preg_replace('/\[(.+?)\]\[(\d+)?\]/', '<a href="path/to/img/id/\2">\1</a>', $st);

答案 1 :(得分:0)

这似乎是你正在寻找的技巧:([[a-zA-Z0-9-] +])([[0-9] +]) 括号(和)用于分组......