doumengjing1500 2013-09-03 19:57
浏览 20

获取可选冒号前的所有字母

I have a wrapper for PHPExcel, and I have a method called setColumn(), which looks like this:

public function setColumn($cell = ""){
    if(empty($cell)){
        $cell = $this->cell;
    }
    $this->column = strtoupper(preg_replace("/[^A-Za-z]/", "", $cell));
    $this->cell   = "{$this->column}{$this->row}";
    return $this;
}

It works just fine, but as I use it, I can pass in ranges such as A1:D1 and when I do, my preg_replace will not replace correctly, it will return AD which I don't want. I want it to return A. I am not sure of the regular expression needed to accomplish this.

The parameter $cell can contain a few different values:

  • A1 should return A
  • A1:D10 should return A
  • AD10 should return AD
  • AD1:BBB1 should return AD

The list could go on, but that is the basics. So what can I do to acomplish that?

  • 写回答

4条回答 默认 最新

  • douchun1900 2013-09-03 20:05
    关注

    Try:

    preg_replace("/^([A-Z]+).*$/", "$1", $cell)
    

    It'll 'save' the first part and remove everything else.

    regex101 demo.

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么