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);