php 函数 preg_replace 与正则表达式不起作用,语法问题
我试图用 preg-replace 替换删除不必要的新行,但我的正则表达式不正确。有人知道我的正则表达式有什么问题吗? (我有 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 内容,没有 # 它不会做任何事情。 奇怪的?! 有人知道为什么这些不起作用吗?
im trying to replace a remove unnessary new lines with preg-replace but my regex is incorrect. Anyone any ideas whats wrong with my regex? (i have Apache/2.0.54 & PHP/5.2.9
NOW HAVE:
{
blaa {
blow;
blue};
bell;}
}ball
WOULD LIKE:
{blaa {blow;blue};bell;}}ball
These regex dont work, they remove too much or toolitle??
$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 (global) gives blanc content and without the # it doestnt do anything. strange?!
Anybody any clue why these dont work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果要删除
{
、}
和;
之后的任何空格,请执行以下操作:这里
/
是分隔符;([{};])
描述捕获匹配时{
、}
和;
中的一个字符;\s+
描述任何后续空白字符(已包括\r
和\n
)。If you want to remove any whitespace after
{
,}
, and;
, do this:Here
/
are the delimiters;([{};])
describes one character of{
,}
, and;
while the match is captured; and\s+
describes any following whitespace characters (already including\r
and\n
).这对我有用:
This works for me: