正则表达式中$ 1,$ 2等是什么意思?

时间:2011-05-12 18:43:44

标签: javascript

我一次又一次地看到代码中使用了$ 1和$ 2。这是什么意思?你能举好一些例子吗?

2 个答案:

答案 0 :(得分:35)

创建正则表达式时,您可以选择捕获匹配的部分并将其保存为占位符。它们从$1开始编号。

例如:

/A(\d+)B(\d+)C/

这将从A90B3C获取值903。如果您需要对事物进行分组但又不想捕获它们,请使用(?:...)版本而不是(...)

数字从括号打开的顺序从左到右开始。这意味着:

/A((\d+)B)(\d+)C/

匹配相同的字符串会捕获90B903

答案 1 :(得分:6)

这是特别的。对Replacement String Syntax有用(即格式字符串)适用于查找和案例的案例/案例折叠。替换。要引用捕获,请使用$ n,其中n是捕获寄存器编号。使用$ 0表示整场比赛。示例:Find: (<a.*?>)(.*?)(</a>) Replace: $1\u$2\e$3