首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除PHP中单引号之间的所有空格,跳过转义引号

如何删除PHP中单引号之间的所有空格,跳过转义引号
EN

Stack Overflow用户
提问于 2010-01-12 11:39:57
回答 3查看 343关注 0票数 0

正如标题所问的:

如何在PHP中删除所有不必要的单引号之间的空格,跳过转义引号?

我正在寻找一个快速的实现来为解析做准备。如果正则表达式比使用简单的循环慢,我不喜欢使用正则表达式。

(下面的双引号仅用于显示)

示例如下:

输入:

代码语言:javascript
复制
"    testing    '  this  is a     \'test\'  '     zzz     "

输出:

代码语言:javascript
复制
"testing '  this  is a     \'test\'  ' zzz"
EN

回答 3

Stack Overflow用户

发布于 2010-01-12 11:55:40

代码语言:javascript
复制
<?php

$parts = preg_split('/((?<!\\\\)|(?<=\\\\\\\\))\'/', trim($data));

foreach ($parts as $index => &$part) {
    if ($index % 2 == 0) {
        $part = preg_replace('/\s{2,}/', ' ', $part);
    }
}

echo join('\'', $parts);

现在等待我错过的更简单的解决方案:p

票数 1
EN

Stack Overflow用户

发布于 2010-01-12 11:54:55

好了,psuedocode时间:

代码语言:javascript
复制
var shouldtrim = true;
var escaped = false;
foreach char in string
    if char is whitespace and lastchar is whitespace and shouldtrim
        remove char from string

    if char is ' and not escaped
        toggle shouldtrim

    if char is \
        toggle escaped
    else
        escaped = false
票数 0
EN

Stack Overflow用户

发布于 2010-01-12 11:49:23

试试这个:

代码语言:javascript
复制
<?php
$str = "    testing    '  this  is a     \'test\'  '     zzz     ";

echo trim($str," ");

?>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2046564

复制
相关文章

相似问题

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