0

我有一个小问题需要整理。我想删除字符串的一部分或拆分它。

所以基本上我有这个:One-1, Two-2, Three-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 模式来拆分值,所以我有一个数组,一、二、三和 1、2、3

任何指导表示赞赏

伊恩

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

如果可以的话,我还有另一个问题,如果我有这个 preg_match 会如何变化:

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

4

3 回答 3

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 ) 
于 2013-03-22T10:17:18.710 回答
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

于 2013-03-22T10:19:25.497 回答
0

这应该有效:

[^-]+

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

于 2013-03-22T10:19:49.073 回答