我想在字符串中获取一个特定字符,而不是显示该字符旁边的所有字符串并想要显示,请你帮我解决这个问题......
字符串:
$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
请提供一些可以帮助我找到所需结果的代码..
答案 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);