Php 精确字符串的正则表达式匹配

Php 精确字符串的正则表达式匹配,php,regex,Php,Regex,我有一根绳子 %24p1_x=-5&%24p1_y=-285.06492367689526&%24p1_hei=0.617986639129584&%24 并希望将p1_x值更改为动态 15.23动态计算的值 需要输出为: %24p1_x=-15.23&%24p1_y=-85.06492367689526&%24p1_hei=0.617986639129584&%24" 我尝试使用explode和preg_match来匹配字符串。 有谁能帮助实

我有一根绳子

%24p1_x=-5&%24p1_y=-285.06492367689526&%24p1_hei=0.617986639129584&%24
并希望将p1_x值更改为动态

15.23动态计算的值

需要输出为:

%24p1_x=-15.23&%24p1_y=-85.06492367689526&%24p1_hei=0.617986639129584&%24"
我尝试使用explode和preg_match来匹配字符串。 有谁能帮助实现这一目标

    <?php

$a = '%24p1_x=-5&%24p1_y=-285.06492367689526&%24p1_hei=0.617986639129584&%24';

echo $a.'<br/><br/>';
$b = explode("&", $a);

foreach($b as $key => $val){
    if(preg_match('/p1_x/', $val)){
        echo 'Matched';
    }
}
?>

听起来你只是想要一个简单的preg_替换:

表达式/p1_x.*?&/表示搜索从p1_x到&的最小字符数

替换中的\1等于搜索表达式括号中的第一部分。

仅将p1\u x值替换为$n,直至下一个值&


请发布您的准确尝试,目前这里没有足够的信息帮助您。谢谢您的回答。我会检查的
$new_val = -15.23;
print preg_replace('/(p1_x).*?&/', '\1='.$new_val.'&', $a);
preg_replace('/p1_x=[^&]*/', 'p1_x=' . $n, $a)