PHP中大括号之间的多个单词

时间:2016-07-12 22:52:39

标签: php regex split

我有以下字符串:

$string = "Hello from {me} to {you}";

我想要的是一个带有大括号之间的单词的数组(当然没有大括号。

array(2) {
  [0]=>
  string(2) "me"
  [1]=>
  string(3) "you"
}

我尝试了以下模式,但它只显示了一个单词(带括号)。

/\{([^}]+)\}/

/\{(\s*?.*?)*?\}/

我是正则表达式的新手。

由于

3 个答案:

答案 0 :(得分:2)

使用preg_match_all。在下面的代码中,您需要$results

$raw_string = "Hello from {me} to {you}";
$pattern = "/{(.*?)}/"; //will match everything in { }

if(preg_match_all($pattern,$raw_string,$matches)):
    $results = $matches[1];
else:
    //no matches
endif;

答案 1 :(得分:1)

您需要使用git stash中的第三个参数来获取数组中的匹配值。

preg_match_all

哪个产生,

<?php

$string = "Hello from {me} to {you}";

preg_match_all('/\{([^}]+)\}/', $string, $matches);

var_dump($matches);

?>

要获得干净的版本,

array(2) { [0]=> array(2) { [0]=> string(4) "{me}" [1]=> string(5) "{you}" } [1]=> array(2) { [0]=> string(2) "me" [1]=> string(3) "you" } }

阅读材料

preg_match_all();

答案 2 :(得分:0)

$ string =&#34;您好{me}至{you}&#34;;

preg_match_all(&#39; / {([^}] +)} /&#39;,$ string,$ matches);

的print_r($比赛[计数($匹配)-1]);