Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除字符串,除非有空格_Php_Regex_Preg Replace - Fatal编程技术网

Php 删除字符串,除非有空格

Php 删除字符串,除非有空格,php,regex,preg-replace,Php,Regex,Preg Replace,我有这个正则表达式,我希望它删除$和$之间的所有文本,并用空字符串替换它,除非两个$符号之间有空格,在这种情况下忽略替换。使用我现在拥有的regexp,无论是否有空格,它都会删除它 <?php $tmp = "<p> $random_text$ </p> <p>     $random text2$ </p> <p> This is some text </p> <p>     This i

我有这个正则表达式,我希望它删除
$
$
之间的所有文本,并用空字符串替换它,除非两个
$
符号之间有空格,在这种情况下忽略替换。使用我现在拥有的regexp,无论是否有空格,它都会删除它

<?php
$tmp = "<p>
    $random_text$
</p>
<p>
    $random text2$
</p>
<p>
    This is some text
</p>
<p>
    This is some text
</p>";

$tmp = preg_replace("/\\$[^ ].+?\\$/", "", $tmp);

我刚刚删除了点


<?php $source = 'His $name$ is $Luis$';
echo $result = preg_replace('/\$(.*?)\$/', '<b>$1</b>', $source);
?>

这将只删除一个非空格字符。@RyanNaddy只有一个空格可以吗?1+,但这似乎涵盖了这一点。对不起,我刚才没想到。这应该行得通。虽然最好也将
$
放在阴性字符类中,以确保匹配连续出现的
$
/\\$[^ ]+?\\$/
<?php $source = 'His $name$ is $Luis$';
echo $result = preg_replace('/\$(.*?)\$/', '<b>$1</b>', $source);
?>