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


Why is my preg_replace call only working for characters, not digits?

我正在尝试使用正则表达式从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';

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

您的正则表达式中next_order_no - 因此它只会将文本与该键匹配。这与数字或字母无关——那是红鲱鱼!