Preg_split或preg_match

时间:2013-03-22 10:15:49

标签: php regex preg-match preg-split

我有一点问题需要排序。我想要删除一部分字符串或拆分它。

所以基本上我有这个:一,二,二,三.3 我想要最终做的是分成2个变量,其中我有“一,二,三”和“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);
编辑:对不起,我的问题措辞不对:

基本上如果有人可以帮助我使用preg模式来拆分值,所以我有一个数组,一个,两个三个和一个,二个,三个

任何指导意见

伊恩

---------------- EDIT --------------

如果可以,我还有另外一个问题,如果我有这个问题,preg_match怎么会改变呢? :

“一个对象-1,两个对象-2”所以现在我在“ - ”之前有多个单词想要一起存储而单独存在“1”?

3 个答案:

答案 0 :(得分:1)

试试这个:

$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 ) 

答案 1 :(得分:0)

如果您总是使用“ - ”,请改用:

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

您可以在此处详细了解此功能:http://php.net/manual/en/function.explode.php

答案 2 :(得分:0)

这应该有效:

[^-]+

但为什么要使用正则表达式呢?你可以简单地用“ - ”爆炸