我在理解如何使用preg_replace时遇到了一个大问题。我需要替换字符串FROM:
GPCNT2(90)>GPBRL2(90)>GPDUT1(180)>GPJDPR TO: GPCNT2>GPBRL2>GPDUT1>GPJDPR
我应该使用什么正则表达式来实现这一点?
当前代码:
if(strpos($route_path, '/('d+)/') !== false) {
$route_path = preg_replace('/('d+)/', '', $route_path);
echo "<br>" .$route_path."</br>";
}
使用preg_match
而不是strpos
。您还需要转义括号'(
给你:
<?php
$route_path = "GPCNT2(90)>GPBRL2(90)>GPDUT1(180)>GPJDPR";
if(preg_match('/'('d+')/', $route_path)) {
$route_path = preg_replace('/'('d+')/', '', $route_path);
echo "<br>" .$route_path."</br>";
}
//</br>GPCNT2>GPBRL2>GPDUT1>GPJDPR</br>
Ideone演示
GPCNT2(90)>GPBRL2(90)>GPDUT1(180)>GPJDPR是字符串吗
如果是;那么你可能想试试这样的东西:
<?php
$str = "GPCNT2(90)>GPBRL2(90)>GPDUT1(180)>GPJDPR";
$strFiltered = preg_replace("#('('d*'))(>)#i", "$2", $str);
//COMPARE THE RESULTS TO SEE IF ALL IS OK AS YOU DESIRED IT...
var_dump($str);
var_dump($strFiltered);