我正在使用以下格式显示的一些字符串:
$string = 'Acme Building Company - BZ-INTERNAL 1';
$string = 'Acme Building Company - TRP-SHOP-1';
$string = 'Acme Building Company - ZJG-INTERNAL 2';
我现在需要找到这些字符串中间的字符并将它们解析出来,所以在上面的例子中我最终会得到以下内容:
BZ
TRP
ZJG
我正在寻找最具活力的方法,所以我不需要对任何替换字符串进行硬编码,但到目前为止还没有能够提出任何代码。
答案 0 :(得分:1)
使用explode(); PHP函数如下:
<?php
$string = 'Acme Building Company - BZ-INTERNAL 1';
$tmp = explode('-', $string);
$middle = trim($tmp[1]);
echo $middle;
上述代码段的输出将是:
BZ
语法为explode(DELIMITER, THE_STRING);
返回数组。
因此,当我们在数组索引1中爆炸给定的字符串BZ锥体时。您可以对所有字符串使用相同的方法,也许是在循环中。
答案 1 :(得分:0)
我渴望等待,看看其他人如何处理这个问题。但是,如果你能保证字符串将始终按照你所展示的方式进行格式化,我个人会尝试:
$exploded = explode('-', $string);
$intials = trim($exploded[1]);
答案 2 :(得分:0)
使用正则表达式可以很好地完成此任务。
$match = null;
if (preg_match('/- (.*?)-/', $string, $matches)) {
$match = $matches[1];
}
答案 3 :(得分:0)
<?php preg_match("/(.*)-(.*)-(.*)/", $input_line, $output_array); echo trim($output_array[2]);?>
或
<?php preg_match("/(.*) - (.*)-(.*)/", $input_line, $output_array); echo $output_array[2];?>
答案 4 :(得分:-1)
@ user982124如果你的字符串格式是相同的那么是的你可以爆炸()它,在第1个索引你会得到你的字符:
<?php
$string1 = 'Acme Building Company - BZ-INTERNAL 1';
$string2 = 'Acme Building Company - TRP-SHOP-1';
$string3 = 'Acme Building Company - ZJG-INTERNAL 2';
$strArr1 = explode("-", $string1);
echo trim($strArr1[1])."<br>";
$strArr2 = explode("-", $string2);
echo trim($strArr2[1])."<br>";
$strArr3 = explode("-", $string3);
echo trim($strArr3[1])."<br>";