2
我正嘗試使用regexp從PHP更新配置文件。我似乎不能更新數字。爲什麼我的preg_replace調用只能用於字符而不是數字?
這是我$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';
有人可以提供一些線索,我強迫自己經常使用正則表達式。
提示:您的替換字符串正在尋找第11個捕獲組,而不是第1個捕獲組。你的答案在於'replacement'參數的文檔[here](http://php.net/manual/en/function.preg-replace.php)。 – DaveRandom 2012-08-16 21:15:59
這是因爲它在$ 1123123'處尋找** 1123123rd **加括號組。 – inhan 2012-08-16 21:16:22
啊哈!!!!我如何分離數字? $ {1} 123123 $ 3 – 2012-08-16 21:23:23