如何使用 preg_replace 替换 url 中标题周围的文本?

发布于 2024-10-25 06:30:51 字数 651 浏览 2 评论 0原文

我知道 preg_replace 是如何工作的,但我对正则表达式很糟糕。这就是我想要实现的目标。我有 url:

http://localhost/Wiki/index.php?*title=***TEST***&action=edit&redlink=1*

我想用这个替换那个 url:

http://localhost/Wiki/index.php/*Special:FormStart?page_name=***TEST***&form=Main*

同时从第一个 url (在这个例子中的测试中)获取标题并将其放入新的 url 中。

到目前为止,这是我的想法,

$pattern = '/^?title=\ Dynamic title goes here \&action=edit&redlink=1$/';

如果

$replaceW = '/^Special:FormStart?page_name=\ Dynamic title goes here \&form=Main$/';

您让我开始做这件事,我将不胜感激!

I kind of know how preg_replace works but I am horrible with regex. Here is what I am trying to achieve. I have url:

http://localhost/Wiki/index.php?*title=***TEST***&action=edit&redlink=1*

I want to replace that url with this one:

http://localhost/Wiki/index.php/*Special:FormStart?page_name=***TEST***&form=Main*

while taking the title from the first url (which is in this ex. TEST) and putting it into the new url.

Here is what I am thinking so far

$pattern = '/^?title=\ Dynamic title goes here \&action=edit&redlink=1$/';

replace it with

$replaceW = '/^Special:FormStart?page_name=\ Dynamic title goes here \&form=Main$/';

I will be thankful if you get me started on this!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最初的梦 2024-11-01 06:30:51

试试这个...

preg_replace(
    '/^http:\/\/localhost\/Wiki\/index\.php\?title=(.*(?=&))&action=edit&redlink=1$/',
    'http://localhost/Wiki/index.php/Special:FormStart?page_name=$1&form=Main',
    'http://localhost/Wiki/index.php?title=TEST&action=edit&redlink=1'
);

请注意,(.*(?=&)) 使用前瞻替换动态文本(有关这方面的更多信息,请参阅http://ruby.about.com/od/regularexpressions/a/lookback.htm)

Try this...

preg_replace(
    '/^http:\/\/localhost\/Wiki\/index\.php\?title=(.*(?=&))&action=edit&redlink=1$/',
    'http://localhost/Wiki/index.php/Special:FormStart?page_name=$1&form=Main',
    'http://localhost/Wiki/index.php?title=TEST&action=edit&redlink=1'
);

Note that (.*(?=&)) replaces the dynamic text by using a lookahead (for more information on this see http://ruby.about.com/od/regularexpressions/a/lookback.htm)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文