如何从PHP中的字符串中提取子字符串,直到它到达不同的字符?

时间:2013-12-28 01:01:45

标签: php string substring

例如我的字符串是这样的:

$str = "aaababca";

我希望得到一个子字符串,当它到达 b 时会停止,所以我会得到

aaa

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您知道"b"是不同的角色,那么您有一个非常简单的解决方案:

$substring = strstr($str, "b", true);

否则,您可以遍历字符串,直到找到与第一个字符不同的字符:

$len = strlen($str);
$substring = $str[0];
$i = 1;
while($i < $len && $str[$i] == $str[0]){
$substring .= $str[$i];
$i++;
}

使用较少的代码行,正则表达式可以完全相同:

preg_match("/^([[:print:]])\\1+/", $str, $mat);
$substring = $mat[0];