我试图用preg-replace替换删除的unnessary新行,但我的正则表达式是不正确的。任何想法我的正则表达式有什么问题吗? (我有Apache / 2.0.54& PHP / 5.2.9
{
blaa {
blow;
blue};
bell;}
}ball
{blaa {blow;blue};bell;}}ball
$buffer = preg_replace('#/\}\n|\r|\s/#s', '}', $buffer);
$buffer = preg_replace('#/\{\n|\r|\s/#s', '{', $buffer);
$buffer = preg_replace('#/\;\n|\r|\s/#s', ';', $buffer);
/ g(全局)给出了blanc内容,没有#the doestnt做任何事情。奇怪?! 任何人都知道为什么这些不起作用?
答案 0 :(得分:1)
$buffer = preg_replace('#([{};])(?:\n|\r|\s)#s', '$1', $buffer);
答案 1 :(得分:1)
这对我有用:
$buffer = preg_replace('/\}\\n|\\r|\\s/', '', $buffer);
答案 2 :(得分:1)
如果要删除{
,}
和;
之后的任何空格,请执行以下操作:
preg_replace('/([{};])\s+/', '$1', $buffer)
此处/
是delimiters; ([{};])
描述了捕捉到匹配时{
,}
和;
的一个字符;并且\s+
描述了以下任何空格字符(已包含\r
和\n
)。