Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP preg_替换为捕获组_Php_Preg Replace - Fatal编程技术网

PHP preg_替换为捕获组

PHP preg_替换为捕获组,php,preg-replace,Php,Preg Replace,如何使用preg\u替换作为捕获组 preg_replace('/testing\[([0-9]+)\]/', $this->storeNew[**THE NUMBER THAT WAS IN BETWEEN**], $this->code); 您可能应该使用自定义函数来实现这一点 例如,您可以这样做: class A { private $code = 'testing[82]'; public function match() { r

如何使用
preg\u替换
作为捕获组

preg_replace('/testing\[([0-9]+)\]/', $this->storeNew[**THE NUMBER THAT WAS IN BETWEEN**], $this->code);
您可能应该使用自定义函数来实现这一点

例如,您可以这样做:

class A {

    private $code = 'testing[82]';

    public function match() {
            return preg_replace_callback('/testing\[([0-9]+)\]/',function($matches) {

         return $this->storeNew($matches[1]);

    }, $this->code);

    }

    private function storeNew($number){
        return ++$number;
    }

}  

$a = new A();
echo $a->match();
使用$this会有点棘手,因此您可能需要类似的东西(在@NiettheDarkAbsol代码下面):


我不确定您希望以何种方式使用该号码。如果您只需要数字本身,而不需要其他任何东西,我不会使用正则表达式,而是使用:

filter_var('testing[83]', FILTER_SANITIZE_NUMBER_INT);

@NiettheDarkAbsol当时我无法编写代码。我还更新了我的代码。发布“不完整”的答案并打算稍后编辑通常不是一个好主意…@NiettheDarkAbsol我想马上编辑它,但孩子们不知道我的计划:)你可以说“为codez准备!”或者什么的XD@NiettheDarkAbsol是的,下次我会记得的
filter_var('testing[83]', FILTER_SANITIZE_NUMBER_INT);