我试图从一个简单的字符串中删除空格,但似乎仍然坚持使用正则表达式。
字符串如下:
$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]);
}
到目前为止没有运气..任何想法或我是否过于复杂化?
由于
答案 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;一部分。