1

我的价值观看起来像这样......

{X}{Y}{Z}{R}{R}

我有 2 个问题,第一个问题,我怎样才能爆炸它,所以结果数组看起来像这样......

Array
(
    [0] => {X}
    [1] => {Y}
    [2] => {Z}
    [3] => {R}
    [4] => {R}
)

第二个问题是,我怎么能把它炸成这样……

Array
(
    [0] => X
    [1] => Y
    [2] => Z
    [3] => R
    [4] => R
)
4

1 回答 1

5

所有你需要的是 :

$str = "{X}{Y}{Z}{R}{R}" ;
preg_match_all("/\{([A-Z])\}/", $str,$matches);
print_r($matches);

观看现场演示

Array
(
    [0] => Array
        (
            [0] => {X}
            [1] => {Y}
            [2] => {Z}
            [3] => {R}
            [4] => {R}
        )

    [1] => Array
        (
            [0] => X
            [1] => Y
            [2] => Z
            [3] => R
            [4] => R
        )

)

解释

这使用正则表达式\{([A-Z])\}。一点一点的意思是:

  • \{匹配文字{
  • (...)正常匹配其中的内容,但捕获它匹配的任何文本。
    • [A-Z]匹配 和 之间A的任何字符Z
  • \}匹配文字}

我们preg_match_all用来查找此模式的所有实例。第 0 组是整个匹配项(包括大括号),第 1 组仅包含使用括号捕获的数据。

于 2013-08-25T20:00:24.083 回答