我正在尝试做一些必须非常简单的事情,但我对 PHP 还很陌生,我正在努力解决这个问题。我想要的是拆分包含 0、1 或多个定界符(大括号)的字符串,同时将定界符和字符串之间的字符串和字符串保持在外面。
例如:“你好 {F}{N},你好吗?” 将输出:
Array ( [0] => Hello
[1] => {F}
[2] => {N}
[3] => , how are you? )
到目前为止,这是我的代码:
$value = 'Hello {F}{N}, how are you?';
$array= preg_split('/[\{\}]/', $value,-1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
print_r($array);
哪个输出(缺少大括号):
Array ( [0] => Hello
[1] => F
[2] => N
[3] => , how are you? )
我也试过:
preg_match_all('/\{[^}]+\}/', $myValue, $array);
哪些输出(有大括号,但外面的文本已刷新):
Array ( [0] => {F}
[1] => {N} )
我很确定我在 preg_split 的良好轨道上,但使用了错误的正则表达式。谁能帮我这个?或者告诉我,如果我离开了?