我一次又一次地看到代码中使用了$ 1和$ 2。这是什么意思?你能举好一些例子吗?
答案 0 :(得分:35)
创建正则表达式时,您可以选择捕获匹配的部分并将其保存为占位符。它们从$1
开始编号。
例如:
/A(\d+)B(\d+)C/
这将从A90B3C
获取值90
和3
。如果您需要对事物进行分组但又不想捕获它们,请使用(?:...)
版本而不是(...)
。
数字从括号打开的顺序从左到右开始。这意味着:
/A((\d+)B)(\d+)C/
匹配相同的字符串会捕获90B
,90
和3
。
答案 1 :(得分:6)
这是特别的。对Replacement String Syntax有用(即格式字符串)适用于查找和案例的案例/案例折叠。替换。要引用捕获,请使用$ n,其中n是捕获寄存器编号。使用$ 0表示整场比赛。示例:Find: (<a.*?>)(.*?)(</a>) Replace: $1\u$2\e$3