【问题标题】:PHP preg_split in to arrayPHP preg_split 到数组
【发布时间】:2013-12-10 10:37:18
【问题描述】:

我正在使用preg_split 来拆分一个值。我需要将拆分的每个值存储到一个数组中。

目前传递给 preg split 的是:

preg_split("/[0-9]/", fujitsu30001 , NULL , PREG_SPLIT_OFFSET_CAPTURE);

我需要将它拆分为每个数字,使其显示为:

[fujitsu, 3, 0, 0, 0, 1]

在数组中,任何帮助都会很好地解决这个问题。

使用preg_match会更好吗?

【问题讨论】:

  • 所以你希望输出是包含 fujitsu 的数组,只有 30001 ??
  • 我假设 fujitsu, 3, 0, 0, 0, 1
  • 请注意fujitsu30001 指的是具有该名称的CONSTANT'fujitsu30001'"fujitsu30001" 指的是包含该内容的 STRING。

标签: php regex arrays preg-split


【解决方案1】:

试试这个:

preg_split("/(?=[0-9])/", 'fujitsu30001');

http://ideone.com/9H65fW

【讨论】:

    【解决方案2】:

    你应该使用匹配而不是拆分:

    preg_match_all('/[a-z]+|\d/i', 'fujitsu30001', $matches);
    print_r($matches[0]);
    

    表达式匹配:

    1. 一串字母或,
    2. 一个数字。

    这样一直重复,直到主题结束。

    【讨论】:

      【解决方案3】:

      我设法通过 preg_split 做到了:

      $regex= "#([0-9])#";
      $string = 'fujitsu30001';                    
      $array = preg_split($regex, $string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
      

      在遇到数字时拆分字符串,因此它显示为

      富士通, 3、 0, 0, 0, 1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多