Preg 替换只得到字母表

Preg replace get only alphabet

我的输入 KWT1234KasT123 和我的预期输出 KWT 但我得到 KWTKT.

我想在第一组大写字母后停止。 我尝试使用以下代码。

<?php
 $number = 'KWT1234KasT123';

echo preg_replace_callback('/[^A-Z]+/',function($v){
    $v = str_replace($v, '', $v);
    return $v[0];
  },$number
);
?>

preg_match 不是全局的,所以它会在第一次匹配后停止。尝试:

$number = 'KWT1234KasT123';
preg_match('/[A-Z]+/',$number, $matches);
echo $matches[0];

输出:

KWT

如果你想找到每组大写字母,你可以使用 preg_match_all