php - Preg 替换仅获取字母表

标签 php preg-replace

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

关于php - Preg 替换仅获取字母表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33465865/

相关文章:

php - 正则表达式 - preg_replace 字符串

php - 匹配和删除字符串中的推特主题标签

PHP 预替换 : "a period with numbers on each side"

php - 在多个服务器上运行 PHP 脚本

php - Yii2:升序排序时如何将空值放在对象列表的末尾?

php - 变量循环不增加

php - 用于清除空的、不必要的 HTML 标记的正则表达式

php - 使用 preg_replace PHP 删除其中的标签和元素

php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'property_id' cannot be null in Laravel 5. 2

php - Facebook 访问 token 过早过期