比方说,我有以下字符串:当它是行上唯一的字符时preg_replace大括号?
Some Text Here }
}
我怎样才能做一个的preg_replace所以只有“}”通过自身的线被替换?
我希望下面的工作,但它并不:
preg_replace('/^(\s*)(\})(\s*)/', etc);
比方说,我有以下字符串:当它是行上唯一的字符时preg_replace大括号?
Some Text Here }
}
我怎样才能做一个的preg_replace所以只有“}”通过自身的线被替换?
我希望下面的工作,但它并不:
preg_replace('/^(\s*)(\})(\s*)/', etc);
下面应该工作:
preg_replace('/^\s*\}\s*$/m', $replacement, $subject);
\s*
,任何数量的whitespace characters。^
anchor以每行为基础工作;默认设置是^
是开头,$
是整个字符串的结尾,而不是单行。$
anchor,否则像}hello
之类的东西也会匹配。^
和$
一个串的开头和结尾匹配。您需要m
修饰符才能使此匹配行的开始和结束。
您的RE将无法按预期工作。匹配s
的零个或多个匹配项。很可能你想用\s*
来代替白色空间。
preg_replace('/^(\s*)(\})(\s*)$/m', $replacement, $subject);
多行免费版本,能够在较大的正则表达式使用应当需要跨越行:
/(^|\n)([^\S\n]*\}[^\S\n]*)(?=\n|$)/