为什么我的preg_replace调用只适用于字符,而不是数字?

时间:2012-08-16 21:10:40

标签: php regex

我正在尝试使用regexp从PHP更新配置文件。我似乎无法更新数字。

这是我的$contents

$sugar_config['sysconfig_next_order_no'] = 'AAAAA';
$sugar_config['sysconfig_next_quote_no'] = '027827';

这是我的$pattern

/(.*sysconfig_next_order_no']\s=\s')(.*)(';)/

当我使用所有字母“AAAAAA”时它起作用 -

preg_replace($pattern, '$1AAAAAAA$3', $contents);

结果:

$sugar_config['sysconfig_next_order_no'] = 'AAAAAAA';
$sugar_config['sysconfig_next_quote_no'] = '027827';

当我使用所有数字时,它会失败:

preg_replace($pattern, '$1123123$3', $contents);

结果:

23123';
$sugar_config['sysconfig_next_quote_no'] = '027827';

有人能说清楚,我强迫自己总是使用正则表达式。

1 个答案:

答案 0 :(得分:0)

你的正则表达式中有next_order_no - 因此只会将文本与该键匹配。这不是数字或字母 - 这是红鲱鱼!