PHP如何使用preg_replace替换字符串中的(90)


PHP how to use preg_replace to replace (90) in a string

我在理解如何使用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);