首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式不起作用的php函数preg_replace,语法问题

正则表达式不起作用的php函数preg_replace,语法问题
EN

Stack Overflow用户
提问于 2010-12-14 01:01:01
回答 3查看 340关注 0票数 1

我正在尝试用preg-replace替换一个删除的不必要的新行,但是我的regex是不正确的。有人知道我的正则表达式有什么问题吗?(我有Apache/2.0.54和PHP/5.2.9

现在拥有:

代码语言:javascript
复制
{
blaa {
blow;
blue};
bell;}
}ball

想要:

代码语言:javascript
复制
{blaa {blow;blue};bell;}}ball

这些正则表达式不工作,它们删除太多或工具??

代码语言:javascript
复制
$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 (全局)提供空白内容,没有#它什么也做不了。奇怪?!有没有人知道为什么这些不起作用?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-14 01:10:43

如果要删除{};之后的任何空格,请执行以下操作:

代码语言:javascript
复制
preg_replace('/([{};])\s+/', '$1', $buffer)

这里的/delimiters([{};])在捕获匹配时描述{};中的一个字符;\s+描述后面的任何空格字符(已经包括\r\n)。

票数 1
EN

Stack Overflow用户

发布于 2010-12-14 01:06:13

代码语言:javascript
复制
$buffer = preg_replace('#([{};])(?:\n|\r|\s)#s', '$1', $buffer);
票数 1
EN

Stack Overflow用户

发布于 2010-12-14 01:09:28

这对我来说很有效:

代码语言:javascript
复制
$buffer = preg_replace('/\}\\n|\\r|\\s/', '', $buffer);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4431341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档