正则表达“1个月, - $ 7.50”将“ - $ 7.50”替换为“-10%”

时间:2011-10-26 18:48:00

标签: php regex

这是我的尝试,但它不起作用。这些天我在正则表达式上如此生疏,所以我不知道它有什么问题。有什么帮助吗?

$pattern = '/-\$[.*]$/';

4 个答案:

答案 0 :(得分:2)

您需要将*置于[]之外(或者更好,使用+)。

尝试'/-\$[0-9\.]+/'

$pattern = '/-\$[0-9\.]+/';

或者,如果 - $ 7.50将始终位于该行的末尾:

$pattern = '/-\$[0-9\.]+$/';

答案 1 :(得分:1)

$pattern = '/-\$(.*)$/';

如果我理解得很好。该号码将在替换字符串中以“$ 1”的形式访问

答案 2 :(得分:1)

尝试:

$pattern = '/-\$\d+\.\d+/';

它将匹配减号(如果您将其更改为-?,减号将是可选的),数字,点和点后的数字。

答案 3 :(得分:1)

<?php
    $string = 'Wow! -$7.50 now!';
    $pattern = '/-\$(\d+)\.(\d+)/';

    $replacement = '-10%';
    echo preg_replace($pattern, $replacement, $string);
?>