Wal*_*han 19 php regex variables
我一直在尝试用PHP做一些正则表达式操作,我在这方面不是很熟练.似乎当我在字符串上使用像preg_replace这样的正则表达式函数时,我可以通过某种名为$ 1,$ 2的变量来访问正则表达式替换的字符串,依此类推.这叫什么,我该如何使用它?
Bol*_*ock 34
这些在正则表达式术语中称为反向引用(此处更多内容).您可以使用它们来引用()
正则表达式或替换字符串中的捕获组(或子图案,包围).
一个例子:
/*
* Replaces abcd123 with 123abcd, or asdf789 with 789asdf.
*
* The $1 here refers to the capture group ([a-z]+),
* and the $2 refers to the capture group ([0-9]+).
*/
preg_replace('/([a-z]+)([0-9]+)/', '$2$1', $str);
Run Code Online (Sandbox Code Playgroud)
它们被称为反向引用并匹配regexp中的分组元素.
如果用括号括起正则表达式的一部分,那么你可以在替换部分中引用它(或者实际上在同一正则表达式的后面,通过与其位置对应的反向引用).
斜线形式或美元形式可用于替换:
\1, \2 == $1, $2
Run Code Online (Sandbox Code Playgroud)