说我有这个
searchpage-20/11111111111?node=15
我将如何设置一个正则表达式来替换整个字符串而不用担心
11111111111
只要其余匹配,就在中间。
我试过
searchallmp3-20/(.+?)\?node=
说我有这个
searchpage-20/11111111111?node=15
我将如何设置一个正则表达式来替换整个字符串而不用担心
11111111111
只要其余匹配,就在中间。
我试过
searchallmp3-20/(.+?)\?node=
怎么样
<?php
$search = 'searchpage-20/11111111111?node=15';
$reg = '#(searchpage-\d+/)\d+(\?node=\d+)#';
echo preg_replace($reg, '${1}blah${2}', $search);
输出
searchpage-20/blah?node=15
你应该可以使用这个:
/searchpage-(\d+)\/(\d+)\?node=(\d+)/
示例用法:
preg_replace('/searchpage-(\d+)\/(\d+)\?node=(\d+)/', '', 'searchpage-20/11111111111?node=15');
你应该发布代码,看看你是如何调用正则表达式的,你还需要描述什么不起作用。
我假设您收到了一些错误消息,因为您在使用/
正则表达式时没有对其进行转义,并且您的分隔符也是/
两种可能:
逃脱/
/searchallmp3-20\/(.+?)\?node=/
使用另一个分隔符
~searchallmp3-20/(.+?)\?node=~
我仍然没有得到你问题的替换部分。如果要删除 之前的数字?
,则应捕获字符串的其他部分
~(searchallmp3-20/).+?(\?node=~)
并替换为
`$1$2`
这将导致
searchpage-20/?node=15
这是你想要的吗?