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