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
。
我的输入 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
。