0

我有这个字符串,但我需要从中删除特定的东西......

原始字符串: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”。总是在变化,它永远是“hr-SOMETHING-SOMETHING”。

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

谢谢

4

5 回答 5

3

取决于您为什么要准确删除那些子串...

  • 如果您总是想完全删除这些子字符串,您可以使用str_replace
  • 如果你总是想删除相同位置的字符,你可以使用substr
  • 如果您总是想删除两个点之间符合某些条件的子字符串,您可以使用preg_replace
于 2012-07-08T11:09:45.553 回答
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

于 2012-07-08T11:09:02.277 回答
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);
于 2012-07-08T11:06:54.977 回答
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" */');
?>
于 2012-07-08T11:13:03.007 回答
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);

多谢你们!

于 2012-07-08T12:34:34.373 回答