小编mos*_*lak的帖子

PHP,正则表达式和多级大括号

我有一个字符串,其中包含几个句子,这些句子都是我要删除的大括号.这不是那么难(我现在知道了.),但真正的麻烦是它是多层次的,我想剥离的是顶级括号并保持一切完整.它看起来像这样:

{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)

php regex brackets

5
推荐指数
1
解决办法
897
查看次数

PHP preg_split,表达我的大括号并保存分隔符

我已经在这半天努力了,我似乎无法找到答案.请帮助一个菜鸟.:)

我有一个字符串,其中包含几个用大括号括起来的句子.它看起来像这样:

{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)

但是这段代码永远不会加载,所以我收集了一些错误.但是什么?

提前致谢.

php regex delimiter preg-split

3
推荐指数
1
解决办法
3144
查看次数

标签 统计

php ×2

regex ×2

brackets ×1

delimiter ×1

preg-split ×1