正则表达式用params替换字符串

时间:2016-02-25 12:54:30

标签: php regex url-rewriting rewrite preg-replace


请帮我创建正则表达式来替换字符串,如:
/ technic / k-700 /?type = repair
像一个字符串 的 /修理/ K-700 /
而不是 k-700 可以是任何其他组合(在 / 之间)而不是修复只能套件
我需要模式和替换。这对我来说太难了。
我的结果不适用于 Wordpress

$pattern = '/technic/([0-9a-zA-Z-]+)/?type=$matches[1]';
$replacement = '/?/([0-9a-z-]+)/';

3 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

$test = preg_replace(
    '~/\w+/([\w-]+)/\?type=(\w+)~i',
    '/$2/$1/',
    '/technic/k-700/?type=repair'
);
var_dump($test);

结果将是:

string(14) "/repair/k-700/"

答案 1 :(得分:1)

您不需要正则表达式,只需使用test.c

即可
explode()

答案 2 :(得分:0)

为了完整起见,或者您以后需要访问网址部分 这是使用parse_urlparse_str

的解决方案
$str = '/technic/k-700/?type=repair';

$url = parse_url($str);

$bits = explode('/',trim($url['path'],'/'));

parse_str($url['query']);

print '/' . $type . '/' . $bits[1] . '/' ;

将输出

/repair/k-700/