Php 搜索字符串中的特定字符

Php 搜索字符串中的特定字符,php,string,php-5.3,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,N

我想在一个字符串中得到一个特定的字符,然后显示该字符旁边的所有字符串,并想显示,你能帮我这个

字符串:

 $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
需要查找的字符是:

 $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
我想要的结果是:

 $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
请提供一些可以帮助我找到所需结果的代码。

在这种情况下,您可以使用
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;
试试这个

$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));
}

您只需使用
explode()
,因为您有一个分隔符,即
$tag
$result[0]
将包含
$teamslist
$tag
之前的所有内容,
$result[1]
将包含之后的所有内容。参数“2”只是告诉explode函数仅检索2个片段。因此,即使在
$teamslist
字符串中出现了更多的
$tag
,它仍然会在找到的第一个字符串上拆分

$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];

在使用substr之后,您可以使用STRPO获取“PIT”的位置


使用preg_match(“\PIT(*+)\”、$teamslist、$matchs)

你不打算先自己解决吗?可能是一个好主意请提供达到预期结果的尝试TackOverflow不是一个你要求别人为你做工作的地方,你必须事先展示你达到预期目标的尝试。有关更多信息,请参阅。strrchr($teamslist,$tag)。“
”;我试过这个代码,但它给了我这个结果……”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“虽然我从一开始就需要这个”@CHC,@SamHolmes,@SamHolmes,但我仍然不明白为什么人们在这里开始提供建议而不是帮助。。这是人们来寻求帮助的地方…所以请帮助其他人…:)在
@
前面有一个2个字符的边格,后面有3个字符。@Flosculus你说的边格是什么意思?“你能澄清一下吗?”DeDevelopers当然很高兴这有帮助