【问题标题】:Preg replace get only alphabetPreg 替换只得到字母表
【发布时间】:2015-11-02 11:24:57
【问题描述】:

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

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

<?php
 $number = 'KWT1234KasT123';

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

【问题讨论】:

  • 你返回KWT的标准是什么?连续大写字母?
  • @Mihai 感谢您的评论。是的,我允许所有资本。我不知道如何在这里给出条件。如果获取整数则不会继续。请给我建议。
  • 要在第一组大写字母后停止吗?
  • 是的,你明白我的意思@chris85
  • 您的 DEMO 返回“KWT”。

标签: php preg-replace


【解决方案1】:

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

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

输出:

KWT

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

【讨论】:

  • 谢谢。我忘了申请 preg_match 。你真的帮了我。我只考虑preg_replace。 :)
猜你喜欢
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多