PHP - 从字符串中删除特定字符串

时间:2012-07-08 11:02:58

标签: php string strip

我有这个字符串,但我需要删除它中的特定内容......

原始字符串:hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64

我需要的字符串:sh-290-92.ch-215-84.lg-280-64

我需要删除hr-165-34. and hd-180-1。 !

编辑:啊,我遇到了障碍!

字符串总是在变化,所以我需要删除的位像“hr-165-34”。永远改变,它总是“小时候,有些东西。”

所以我使用的方法不会起作用!

由于

5 个答案:

答案 0 :(得分:3)

取决于您为什么要删除那些Substrigs ......

  • 如果您一直想要删除这些子字符串,可以使用str_replace
  • 如果您始终要删除同一位置的字符,可以使用substr
  • 如果您始终要删除符合特定条件的两个点之间的子字符串,则可以使用preg_replace

答案 1 :(得分:2)

$str = 'hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64';
$new_str = str_replace(array('hr-165-34.', 'hd-180-1.'), '', $str);

str_replace上的信息。

答案 2 :(得分:0)

最简单,最快捷的方法是使用str_replace

$ostr = "hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64";
$nstr = str_replace("hr-165-34.","",$ostr);
$nstr = str_replace("hd-180-1.","",$nstr);

答案 3 :(得分:0)

<?php    
$string = 'hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64';

// define all strings to delete is easier by using an array
$delete_substrings = array('hr-165-34.', 'hd-180-1.');
$string = str_replace($delete_substrings, '', $string);


assert('$string == "sh-290-92.ch-215-84.lg-280-64" /* Expected result: string = "sh-290-92.ch-215-84.lg-280-64" */');
?>

答案 4 :(得分:0)

我已经明白了!

$figure = $q['figure']; // hr-165-34.sh-290-92.ch-215-84.hd-180-1.lg-280-64

$s = $figure;
$matches = array();
$t = preg_match('/hr(.*?)\./s', $s, $matches);

$s = $figure;
$matches2 = array();
$t = preg_match('/hd(.*?)\./s', $s, $matches2);

$s = $figure;
$matches3 = array();
$t = preg_match('/ea(.*?)\./s', $s, $matches3);

$str = $figure;
$new_str = str_replace(array($matches[0], $matches2[0], $matches3[0]), '', $str);
echo($new_str);

谢谢你们!