0

PHP コードに次のような文字列があります。

$string = "(A)[B]C/D/E:F?G";

正規表現を使用して文字列から , , , , , の部分を抽出するにはどうAすればよいですか?BCDEFG

some_function_do_some_regexたとえば、パラメータとして my を取り、$stringそこから 7 つの必要な部分を抽出する関数が必要です

$parts = some_function_do_some_regex($string);
print_r($parts);

// OUTPUT
/*
Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
    [6] => G
)
*/

更新:
重要なことを言及する必要がありましたが、忘れていました。申し訳ありません。文字列の 7 つの部分 (A、B、C、D、E、F、G) はサンプル用であり、値が変わる可能性があることに注意してください。

たとえば、次のように考えてください。

$string = "(aaa)[bbb]ccc/ddd/eee:fff?ggg";

出力は次のようになります

/*
Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => ddd
    [4] => eee
    [5] => fff
    [6] => ggg
)
*/

もう 1 つの重要な注意事項:
パート 1 から 6 には記号文字がなく、a-zand の0-9値がありますが、最後の部分 (疑問符の後の部分) では、[andなどの任意の文字を使用でき/ます。

パーツ構成がとても重要だということです。

パート
A : との間のすべてパート B :(との間のすべてパート C : 最初とその後のすべてパート D : 最初と 2 番目の間のすべてパート E : 2 番目以降と前のすべてパート F : 以降と以降のすべてパートGの前:後のすべて)
[]
/]
/
/:
:?
?

4

2 に答える 2

0

Rohit が提案したように、パターンの PHP 実装は次のとおりです。

$string = "(A)[B]C/D/E:F?G";
preg_match_all('/\w/', $string, $matches);
print_r($matches[0]);
于 2012-12-08T08:36:50.763 に答える
0

Rohit Jain助けてくれてありがとう。私はこの答えを作成します:

<?php

$string = "(a)[b]c/d/e:f?g:part?with(non-alphabetical)[characters]!";
preg_match_all('/([a-zA-Z0-9]+)|\?([^?]*)$/', $string, $sixparts);
preg_match_all('/([a-zA-Z0-9]+)|.*?\?(.*)$/', $string, $sevenpart);

$part_a = $sixparts[0][0];
$part_b = $sixparts[0][1];
$part_c = $sixparts[0][2];
$part_d = $sixparts[0][3];
$part_e = $sixparts[0][4];
$part_f = $sixparts[0][5];
$part_g = $sevenpart[2][0];

echo $part_a; // a
echo $part_b; // b
echo $part_c; // c
echo $part_d; // d
echo $part_e; // e
echo $part_f; // f
echo $part_g; // g:part?with(non-alphabetical)[characters]!
于 2012-12-11T03:31:12.277 に答える