搜索字符串中的特定字符

时间:2014-09-12 10:33:59

标签: php string php-5.3

我想在字符串中获取一个特定字符,而不是显示该字符旁边的所有字符串并想要显示,请你帮我解决这个问题......

字符串:

 $teamslist = "BAL@NYY,PIT@CHC,PHI@MIA,BAL@NYY,TOR@TB,DET@CLE,NYM@WSH,TEX@ATL,KC@BOS,MIL@CIN,CWS@MIN,STL@COL,ARI@SD,LAA@HOU,SEA@OAK,SF@LAD
";

需要查找的字符是:

 $tag = 'PIT';

我想要的结果是:

  @CHC,PHI@MIA,BAL@NYY,TOR@TB,DET@CLE,NYM@WSH,TEX@ATL,KC@BOS,MIL@CIN,CWS@MIN,STL@COL,ARI@SD,LAA@HOU,SEA@OAK,SF@LAD

请提供一些可以帮助我找到所需结果的代码..

4 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用substr()

$teamslist = "BAL@NYY,PIT@CHC,PHI@MIA,BAL@NYY,TOR@TB,DET@CLE,NYM@WSH,TEX@ATL,KC@BOS,MIL@CIN,CWS@MIN,STL@COL,ARI@SD,LAA@HOU,SEA@OAK,SF@LAD";
$tag = 'PIT';
$teamslist = substr($teamslist, strpos($teamslist, $tag)+strlen($tag));
echo $teamslist;

答案 1 :(得分:0)

试试这个

$result = '';
$teamslist = "BAL@NYY,PIT@CHC,PHI@MIA,BAL@NYY,TOR@TB,DET@CLE,NYM@WSH,TEX@ATL,KC@BOS,MIL@CIN,CWS@MIN,STL@COL,ARI@SD,LAA@HOU,SEA@OAK,SF@LAD";   
$pos = strpos($teamslist,'PIT') + 3; //+3 is to count PIT position as well

if($pos !== FALSE){
     $result = substr($teamslist, $pos, strlen($teamlist));
}

答案 2 :(得分:0)

您可以只使用explode(),因为您有一个分隔符,即$tag$result[0]将包含$tag$teamslist之前的所有内容,而$result[1]将包含所有内容。参数“2”只是告诉爆炸功能只能检索2件。因此,即使$tag字符串中出现$teamslist更多,它仍会在找到的第一个字符串中分割。

$teamslist = "BAL@NYY,PIT@CHC,PHI@MIA,BAL@NYY,TOR@TB,DET@CLE,NYM@WSH,TEX@ATL,KC@BOS,MIL@CIN,CWS@MIN,STL@COL,ARI@SD,LAA@HOU,SEA@OAK,SF@LAD
";
$tag = "PIT";
$result = explode($tag, $teamslist, 2);
echo $result[1];

答案 3 :(得分:0)

你使用strpos来获得" PIT"的位置,在使用substr之后

或者

使用preg_match(' \ PIT(* +)\',$ teamslist,$ matchs);