2013-01-02 192 views
4

我有這個正則表達式,我希望它刪除$$之間的所有文本,並將其替換爲空字符串,除非在兩個$標誌之間存在任何空格,並且在該案件無視替換。使用我現在使用的正則表達式,無論有沒有空間,都會將其刪除。刪除字符串,除非有空格

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

所以,最後我希望將此作爲輸出。您可能會注意到,第一段落標籤之間的文字已經消失,但第二段標籤仍然存在。

<p> 

</p> 
<p> 
    $random text2$ 
</p> 
<p> 
    This is some text 
</p> 
<p> 
    This is some text 
</p> 

回答

1
/\\$[^ ]+?\\$/ 

我剛剛刪除的點

+0

這將只是刪除一個非空字符。 –

+0

刪除點作品 –

+0

@RyanNaddy只有一個空間可以嗎? –

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