ran*_*425 1 php regex preg-match
我有以下字符串:
$string = '{(|Teste 1|)}{(|Teste_2|)}{(|3 3 3 3|)}';
Run Code Online (Sandbox Code Playgroud)
我想提取{(|和|)}之间的每个子字符串.
我尝试着:
$string = '{(|Teste 1|)}{(|Teste_2|)}{(|3 3 3 3|)}';
preg_match('/([^{\(\|])(.*)([^\|\)}])/', $string, $matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
die();
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => Teste 1|)}{(|Teste_2|)}{(|3 3 3 3
[1] => T
[2] => este 1|)}{(|Teste_2|)}{(|3 3 3
[3] => 3
)
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Array
(
[0] => Teste 1
[1] => Teste_2
[2] => 3 3 3
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成这个结果?
THKS!
您的正则表达式语法不正确,而您想要使用preg_match_all().
$str = '{(|Teste 1|)}{(|Teste_2|)}{(|3 3 3 3|)}';
preg_match_all('/{\(\|([^|]*)\|\)}/', $str, $matches);
print_r($matches[1]);
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => Teste 1
[1] => Teste_2
[2] => 3 3 3 3
)
Run Code Online (Sandbox Code Playgroud)