是否可以使用正则表达式编辑字符串?

时间:2013-02-05 10:34:35

标签: php regex

我想编辑以下示例字符串:

$str = '$variable$123'

转换为

$str = '$variable$*123'

我尝试了以下代码:

<?php

$str = '$variable$123';
$str= preg_replace('/(\$\w*\$.[0-9]*)+/i', '$1*$2', $str);
echo $str;

?>

但是没有得到我想要的......

请帮助.....

2 个答案:

答案 0 :(得分:3)

$str = preg_replace('/(\$\w+\$)(\d+)/', '$1*$2', $str);

另一个(更简单的)版本可能适合评论中给出的示例

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

答案 1 :(得分:1)

我得到了答案。

<?

$str1 = '$variable$123$variable2$';    
echo replace($str1);

$str2 = '$variable$123';
echo replace($str2);

function replace($str)
{
    $str = preg_replace('/(\$\w*\$)(\d+)/i', '$1*$2', $str);
    $str = preg_replace('/(\d+)(\$\w*\$)/i', '$1*$2', $str);        
    return $str
}

?>

输出

$variable$*123*$variable2$

$variable$*123