代码之家  ›  专栏  ›  技术社区  ›  snookian

使用2个分隔符分析格式化文本以生成两个数组[重复]

  •  0
  • snookian  · 技术社区  · 11 年前

    我有一个小问题需要排序。我想删除字符串的一部分或将其拆分。

    我最终想做的是将其拆分为两个变量,其中有“一,二,三”和“1,2,3”,我不确定我是否可以将其拆分成两个,或者我是否必须先删除“-”之后的部分,然后再做一次,删除“-“之前的部分,以获得两个变量。无论如何,我看了一眼,似乎 preg_split() preg_match() 可能有效,但不知道 preg 模式。

    这就是我到目前为止所拥有的:

    $string = 'One-1, Two-2, Three-3';
    $pattern = '????????????';
    preg_match_all($pattern, $string, $matches);
    print_r($matches);
    

    编辑:对不起,我的问题措辞错误:

    基本上,如果有人能帮我 预浸料 模式来分割值,这样我就有了一个一、二、三和1、2、3的数组

    ----------------编辑--------------

    如果可以的话,我还有一个问题,如果我有这个,赛前比赛会发生什么变化 :

    One Object-1, Two Object-2

    所以现在我在“-”之前有多个单词要存储在一起,而“1”本身又有多个?

    3 回复  |  直到 1 年前
        1
  •  1
  •   Prasanth Bendra    11 年前

    试试这个:

    $string = 'One-1, Two-2, Three-3';
    $pattern = '/(?P<first>\w+)-(?P<second>\w+)/';
    preg_match_all($pattern, $string, $matches);
    
    print_r($matches['first']);
    print_r($matches['second']);
    

    输出:

    Array ( [0] => One [1] => Two [2] => Three ) 
    Array ( [0] => 1 [1] => 2 [2] => 3 ) 
    
        2
  •  0
  •   blamonet    11 年前

    如果您总是有一个“-”,请使用此选项:

    $string = "One-1";
    $args = explode("-", $string);
    // $args[0] would have One
    // $args[1] would have 1
    

    您可以在此处阅读有关此功能的更多信息: http://php.net/manual/en/function.explode.php

        3
  •  0
  •   AdamL    11 年前

    这应该起作用:

    [^-]+
    

    但是为什么要使用regexp呢?你可以简单地通过“-”爆炸