2011-10-03 175 views
3

我吸用预浸我永远不会了解它:(这不应该是很难,我可以请有一个代码示例,以取代大括号,包括空格,之间的一切一切都像:PHP替换大括号之间的所有内容?

$string = preg_replace('{.*?}#si', '', $string); 

什么?

回答

6

你失踪初始#分隔符:

'#\{.*?\}#s' 

看到它联机工作:ideone

一对夫妇的其他小点:

  • i修饰符是不必要在这里,因为你没有在模式中的任何信件。
  • 最好在正则表达式中使用{}以避免与作为量词使用的混淆,尽管在这种情况下它不是必须的。
+0

感谢您的回复,但它所做的只是删除第一个括号,并保留括号中的所有内容。 –

+0

@John Jenkins:作为一个疯狂的猜测,我想象你忘了'\}'或者在最后的'#'之前你有一个额外的空间或其他角色。发布您尝试的代码,如果您想获得更具体的帮助。 –

+0

我刚刚复制并粘贴了你给我的代码。我尝试着慢慢修改一些其他的代码:$ string = preg_replace('#([{。*?]])*?([{。*?}])#e',“ ('\ t $ 2')“,$ string);它在每个周期和问号之后添加一个选项卡,但是我希望它为所有括号之间的所有内容做到这一点。 –

1

看完您的其他问题后,您似乎想要使用它来美化您的代码。虽然许多编辑器都将这种功能内置到一个文件中,但我想你可以将它应用到一堆文件中。如果是这种情况,请参见https://github.com/clbustos/PHP_Beautifier

编辑归因于意见:然后,你不会想诚实地使用正则表达式。使用php tokenizer

+0

我想让自己的美化者 –

+3

@JohnJenkins:通过请求其他人为你写钱? – mario

+1

我提供完全免费的无广告我将主要使用它 –

相关问题