【问题标题】:What does $1, $2, etc. mean in Regular Expressions?正则表达式中的 $1、$2 等是什么意思?
【发布时间】:2011-05-12 18:43:44
【问题描述】:

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

【问题讨论】:

标签: javascript


【解决方案1】:

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

例如:

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

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

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

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

与同一字符串匹配将捕获90B903

【讨论】:

  • 在 Perl 中可以,但我认为 Ruby 不支持这种回溯。
  • 这是最好的解释,
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2012-09-07
    • 2011-08-28
    • 2020-01-11
    相关资源
    最近更新 更多