我有一个字符串,其中包含几个句子,这些句子都是我要删除的大括号.这不是那么难(我现在知道了.),但真正的麻烦是它是多层次的,我想剥离的是顶级括号并保持一切完整.它看起来像这样:
{Super duper {extra} text.} {Which I'm really {starting to} hate!} {But I {won't give up} so {easy}!} {Especially when someone is {gonna help me}.}
Run Code Online (Sandbox Code Playgroud)
我想创建一个由这四个条目组成的数组:
Super duper {extra} text.
Which I'm really {starting to} hate!
But I {won't give up} so {easy}!
Especially when someone is {gonna help me}.
Run Code Online (Sandbox Code Playgroud)
我尝试了两种方法,一种是preg_split,它没有做太多好处:
$key = preg_split('/([!?.]{1,3}\} \{)/',$key, -1, PREG_SPLIT_DELIM_CAPTURE);
$sentences = array();
for ($i=0, $n=count($key)-1; $i<$n; $i+=2) {
$sentences[] = $key[$i].$key[$i+1]."<br><br>";
}
Run Code Online (Sandbox Code Playgroud)
另一个是使用preg_match_all这是非常好的,直到我意识到我有这些括号多级:
$matches = array();
$key = preg_match_all('/\{[^}]+\}/', $key, $matches);
$key …Run Code Online (Sandbox Code Playgroud) 我已经在这半天努力了,我似乎无法找到答案.请帮助一个菜鸟.:)
我有一个字符串,其中包含几个用大括号括起来的句子.它看起来像这样:
{Super duper extra text.} {令人敬畏的另一个文字!} {我们又来了......}
现在我想分开它.
我想我可以搜索像.} {等等的模式.所以我这样做:
$key = preg_split('/[!?.]{1,3}\} \{/',$key);
Run Code Online (Sandbox Code Playgroud)
但是这样我丢失了分隔符,我丢失了所有这些.!?在句末.
我试着这样做:
$key = preg_split('/([!?.]{1,3}\} \{)/',$key, -1, PREG_SPLIT_DELIM_CAPTURE);
$sentences = array();
for ($i=0, $n=count($key)-1; $i<$n; $i+=2) {
$sentences[] = $key[$i].$key[$i+1]."<br><br>";
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码永远不会加载,所以我收集了一些错误.但是什么?
提前致谢.