如果美元符号围绕一个单词,如何从PHP变量中删除美元符号($)

时间:2018-01-19 20:36:30

标签: php

如果它包围一个单词,我想从PHP变量 中删除任何美元符号($)。

我知道如何用空格替换每个$看起来像被删除,例如:

  <?php 

      $string = 'Hello $George$';
      $string = str_replace('$', '', $string);
      echo $string; // Prints: Hello George


   ?>

但上面的代码也删除了不包含单词的$,例如:

<?php 

      $string = 'Hello $George$, are you $ok?';
      $string = str_replace('$', '', $string);
      echo $string; // Prints Hello George, are you ok?

   ?>

我已经尝试了很长时间来解决这个问题,但没有设法解决它,任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:10)

首先,我将回答您的问题

使用preg_replace代替,即使用仅检测围绕单词的那些美元符号的模式。

$string = preg_replace('/\$(\w+)\$/', '$1', $string);

现在改进了代码

正如您的问题评论中所提到的,您需要使用单引号(')来包围字符串,以防止PHP将带有前缀为美元符号的单词替换为相应的变量。

可以找到理解双引号和单引号字符串之间差异的良好来源from this question