PHP - 从字符串中解析出字符

时间:2017-04-12 05:30:25

标签: php substring

我正在使用以下格式显示的一些字符串:

 $string = 'Acme Building Company - BZ-INTERNAL 1';
 $string = 'Acme Building Company - TRP-SHOP-1';
 $string = 'Acme Building Company - ZJG-INTERNAL 2';

我现在需要找到这些字符串中间的字符并将它们解析出来,所以在上面的例子中我最终会得到以下内容:

  BZ
  TRP
  ZJG

我正在寻找最具活力的方法,所以我不需要对任何替换字符串进行硬编码,但到目前为止还没有能够提出任何代码。

5 个答案:

答案 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>";