我有字符串例如:
$stringExample = "(({FAPAGE15}+500)/{GOGA:V18})"
// separete content { }
我需要结果是这样的:
$response = array("FAPAGE15","GOGA:V18")
我认为它必须是:preg_split
或preg_match
答案 0 :(得分:1)
这是你需要的正则表达式:
\{(.*?)\}
正则表达式示例:
PHP:
$str = "(({FAPAGE15}+500)/{GOGA:V18})";
preg_match_all("/\{(.*?)\}/", $str, $matches);
print_r($matches[1]);
输出:
Array
(
[0] => FAPAGE15
[1] => GOGA:V18
)
工作示例:
答案 1 :(得分:1)
您可以使用否定字符类:[^}]
(所有不是}
)
preg_match_all('~(?<={)[^}]++(?=})~', $str, $matches);
$result = $matches[0];
模式细节
~ # pattern delimiter
(?<={) # preceded by {
[^}]++ # all that is not a } one or more times (possessive)
(?=}) # followed by }
~ # pattern delimiter
注意:占有量词++
对于获得好结果并不重要,可以用+
代替。您可以找到有关此功能的更多信息here。