正则表达式删除空格

时间:2014-05-14 08:23:35

标签: php regex

我试图从一个简单的字符串中删除空格,但似乎仍然坚持使用正则表达式。

字符串如下:

$string = '"4 " <sup>5</sup> "6 "<sup>7</sup>';

我在这里遇到的问题是,我试图去除&#34; 4&#34;和&#34; 6&#34;。

我必须尝试执行此操作的代码如下:

if (preg_match('/.*?[a-zA-Z0-9](\s+)/is', $string, $matches))
{
    $string = str_replace(' ','', $matches[0]);
}

到目前为止没有运气..任何想法或我是否过于复杂化?

由于

3 个答案:

答案 0 :(得分:2)

根据我的理解,你试图在结束报价之前删除空格。

$string = '"4 " <sup>5</sup> "6 "<sup>7</sup>';
print preg_replace('/"([^\s"]+)\s*"/', '"$1"', $string);
# "4" <sup>5</sup> "6"<sup>7</sup>

答案 1 :(得分:1)

如果要替换字符串中的每个空格,为什么要担心正则表达式?为什么不直接替换字符串中的每个空格?

$newString=str_replace(" ","",$yourString);

在问题中找到你要求的内容似乎是最简单的方法吗?

答案 2 :(得分:0)

你能试试吗?

$new = preg_match('/"([0-9])\s+"/is', '"$1"', $string);

这符合&#34; number spaces&#34;并只保留&#34; number&#34;一部分。