我怎么能在php中分解这个字符串?
纽约大都会 5 亚特兰大 2
分成4个字符串:
$team1
$team1score
$team2
$team2score
我可以得到第一个词,但就是这样。甚至那也不应该是正确的,因为 NY Mets 只是以 NY 的形式出现。
$words = explode(' ', $gamestring);
$first_word = $words[0];
一些方向感将不胜感激。
我怎么能在php中分解这个字符串?
纽约大都会 5 亚特兰大 2
分成4个字符串:
$team1
$team1score
$team2
$team2score
我可以得到第一个词,但就是这样。甚至那也不应该是正确的,因为 NY Mets 只是以 NY 的形式出现。
$words = explode(' ', $gamestring);
$first_word = $words[0];
一些方向感将不胜感激。
您需要定义要查找的模式。例如,您可以使用此正则表达式来查找...
字符串开头的任意数量的字符,然后是空格,然后是数字,然后是空格,然后是任意数量的字符,然后是空格,然后是字符串末尾的数字
if (preg_match('/^(.*?) (\d+) (.*?) (\d+)$/', $string, $matches)) {
$team1 = $matches[1];
$team1score = $matches[2];
$team2 = $matches[3];
$team2score = $matches[4];
}
另一种方法是使用list(...)
$gamestring = "NY Mets 5 Atlanta 2";
preg_match("/(.*?) (\d+) (.*?) (\d+)/", $gamestring, $matches);
list(, $team1, $team1score, $team2, $team2score) = $matches;
echo "Team 1 = " . $team1 . "<br />";
echo "Score = " . $team1score . "<br /><br />";
echo "Team 2 = " . $team2 . "<br />";
echo "Score = " . $team2score . "<br />";
我不知道你打算做什么,但使用爆炸,你总是可以这样做。
你也可以尝试 pregmatch 和 strpos 函数来做同样的事情。
$gamestring="NY Mets 5 Atlanta 2";
$words = explode(" ",$gamestring);
for($i=0;$i<sizeof($words);$i++){
echo($words[$i]."<br/>");
}
使用explode 将根据分隔符创建一个字符串数组。您正在使用空格字符,这就是为什么您的第一个单词只是 NY 而不是 NY Mets。如果这是您的模式并且您想要使用,这意味着它将是 City、Team #1、Team #1 Score、Team #2、Team #2 score,您可以将其分解并连接数组的任何元素一起得到你想要的。所以如果你想要这样的城市和团队名称,你会做 $team1 = $words[0] 。“”。$字[1]; 例如,您可以将其打印出来并获得 NY Mets。我希望这会有所帮助!
-坦率