PHP:拆分所需的字符串

PHP:拆分所需的字符串,php,split,Php,Split,根据我上面的问题,下面是 $staff1 = "Peter Sondak (Top Pop - F09)"; $staff2 = "James Rodri (Top Pop - F12)"; $staff3 = "Allan Kang (Top Pop - F31)"; echo $staff1; echo "<br>"; echo $staff2; echo "<br>"

根据我上面的问题,下面是

$staff1 = "Peter Sondak (Top Pop - F09)";
$staff2 = "James Rodri (Top Pop - F12)";
$staff3 = "Allan Kang (Top Pop - F31)";

echo $staff1;
echo "<br>";
echo $staff2;
echo "<br>";
echo $staff3;
$staff1=“Peter Sondak(顶级流行音乐-F09)”;
$staff2=“詹姆斯·罗德里(顶级流行音乐-F12)”;
$staff3=“艾伦·康(顶级流行音乐-F31)”;
echo$staff1;
回声“
”; echo$staff2; 回声“
”; echo$staff3;
结果是这样的

彼得·桑达克(顶级手套-F09)

詹姆斯·罗德里(顶级手套-F12)

艾伦·康(顶级手套-F31)

FYI、F09、F12和F31代表工厂。现在,我想将其拆分为只显示工厂,例如F09,不包括名称

有人能帮我吗?

您可以使用在字符串中搜索

$staff = "Peter Sondak (Top Pop - F09)";
preg_match("/\((.*?)\)/", $staff, $matches);

var_dump($matches);

您可以使用在线工具,比如玩正则表达式并调整它们(有很多这样的网站,这只是一个例子)

您可以使用
正则表达式
来解析两个字符之间的
子字符串

$staffList = [ "Peter Sondak (Top Pop - F09)", "James Rodri (Top Pop - F12)", "Allan Kang (Top Pop - F31)" ];
function getFactory($staff){
     preg_match_all('/-(.*)\)/', $staff, $matches);
     return trim($matches[1][0]);
}
for($i = 0; $i < count($staffList); $i++)
     echo getFactory($staffList[$i]) . "<br>";

我想这可能会对你有所帮助

 function factory($staff) {
 $a = preg_match("/(?<=\-\s).+(?=\))/",$staff,$arr);
 return $arr[0];
 }
 
$staff1 = "Peter Sondak (Top Pop - F09)";
echo factory($staff1);
功能工厂($staff){

$a=preg_match(“/(?为什么不使用?考虑到你的代码是硬编码的,你到目前为止尝试了什么?你在哪里卡住了?当数据在循环中时,我遇到了这个错误,无法重新声明getFactory()(以前在C:\xampp\htdocs\ldap\index2.php:119中声明)你应该声明一次函数。我更新了使用循环的答案。
<?php
function get_factory($full)
{
  preg_match_all("/\\((.*?)\\)/", $full, $factory);
  $factory = $factory[1][0];
  $factory = substr($factory, strpos($factory, " - F") + 4);
  $factory = "F".$factory;
  return $factory;
}
?>
<?php
    $staff1 = "Peter Sondak (Top Pop - F09)";
    $staff2 = "James Rodri (Top Pop - F12)";
    $staff3 = "Allan Kang (Top Pop - F31)";

    echo get_factory($staff1);
    echo "<br>";
    echo get_factory($staff2);
    echo "<br>";
    echo get_factory($staff3);
?>

 function factory($staff) {
 $a = preg_match("/(?<=\-\s).+(?=\))/",$staff,$arr);
 return $arr[0];
 }
 
$staff1 = "Peter Sondak (Top Pop - F09)";
echo factory($staff1);
 function factory(...$staff) {
 $arr = [];  
 foreach($staff as $staf) {
 $a = preg_match("/(?<=\-\s).+(?=\))/",$staf,$array);
 $arr[] = $array[0];     
 }   
 return $arr;
 }
 
    $staff1 = "Peter Sondak (Top Pop - F09)";
    $staff2 = "James Rodri (Top Pop - F12)";
    $staff3 = "Allan Kang (Top Pop - F31)";
    print_r(factory($staff1,$staff2,$staff3));