Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 用相同的数字替换正则表达式中的数字_Php_Regex - Fatal编程技术网

Php 用相同的数字替换正则表达式中的数字

Php 用相同的数字替换正则表达式中的数字,php,regex,Php,Regex,然而,我试图替换与模式相关联的数字。因此,输出类似于: [pattern[0-9]] This is my test [pattern[0-9]] String for [pattern[0-9]] Reg Ex [pattern[0-9]] 有什么提示吗?(?试试这个: [pattern1] This is my test [pattern1] String for [pattern3] Reg Ex [pattern2] (?<=pattern)(\d+)[^\]]* 希望对您有

然而,我试图替换与模式相关联的数字。因此,输出类似于:

[pattern[0-9]] This is my test [pattern[0-9]] String for [pattern[0-9]] Reg Ex [pattern[0-9]]
有什么提示吗?

(?试试这个:

[pattern1] This is my test [pattern1] String for [pattern3] Reg Ex [pattern2]
(?<=pattern)(\d+)[^\]]*

希望对您有所帮助:)

$r未使用,可以在您的examplenice解决方案中省略,但缺少右括号。。。输出:-
[pattern1这是我的测试[pattern3 Reg Ex[pattern2
@JhilkeDai的pattern1字符串应该是这样的
$str=preg\u replace($p,$1],$str);
(只需附加
]
)这个答案几乎只加了那么一点点。重要的是使用
$1
@kingKing是的,我这样做了…我正要更新答案或通知Halayem更正…谢谢,但我真的不明白我应该把这个放在哪里…你的链接显示它可以工作,我用这个替换了
$p
,但是我t throw error我得到的错误(或警告)是:
PHP警告:preg_replace():未知修饰符“(”在file.PHP行号中
(?<=pattern)(\d+)[^\]]*
function rg($str) {
    $p = '/(\[pattern[0-9])\:[a-zA-Z]{3,10}\]/';
    $r = '$1]'; # $1 contains what tou will catch inside the  paranthesis
    $str = preg_replace($p, $r, $str);
    return $str;
}