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);
?>