0

並べ替える必要がある小さな問題があります。文字列の一部を削除するか、分割したい。

つまり、基本的に私はこれを持っています: One-1, Two-2, Three-3 最終的にやりたいことは、「One、Two、Three」と「1、2、3」を持つ 2 つの変数に分割することです。それを2つに分割できるかどうか、または「-」の後の部分を最初に削除する必要がある場合は、「-」の前のビットを削除して2つの変数になるようにもう一度実行してください。とにかく私は見て、 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、および 1、2、3 の配列があります。

任意のガイダンスをいただければ幸いです

イアン

- - - - - - - - 編集 - - - - - - -

できれば別の質問があります。これがあった場合、preg_match はどのように変化しますか。

"One Object-1, Two Object-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

If you always have a "-" use this instead:

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

You can read more about this function here: http://php.net/manual/en/function.explode.php

于 2013-03-22T10:19:25.497 に答える
0

This should work:

[^-]+

But why use regexp at all? You can simply explode by "-"

于 2013-03-22T10:19:49.073 に答える