【发布时间】:2014-10-21 19:44:33
【问题描述】:
我是 R 新手。我正在学习形成正则表达式的概念。
即像这样"(\\2.\\3)"。这些是什么?我的意思是,这些数字和符号代表什么?谁能用非常通俗的语言解释这是什么意思?或者类似的东西,(\2.\4)(\2.\4),这是什么意思?感谢您的帮助!
【问题讨论】:
我是 R 新手。我正在学习形成正则表达式的概念。
即像这样"(\\2.\\3)"。这些是什么?我的意思是,这些数字和符号代表什么?谁能用非常通俗的语言解释这是什么意思?或者类似的东西,(\2.\4)(\2.\4),这是什么意思?感谢您的帮助!
【问题讨论】:
它们被称为backreferences,它可以回忆捕获组匹配的内容。 capturing group 可以通过将要分组的字符放在一组括号 ( ) 中来创建。反向引用在 R 中指定为反斜杠 (\),两个反斜杠 (\\);后跟一个数字表示要召回的组数。
以下是使用反向引用替换捕获组#2 和#3 匹配的内容的示例...
x <- 'foo bar baz quz'
sub('(\\S+) (\\S+) (\\S+) (\\S+)', '(\\2.\\3)', x)
# [1] "(bar.baz)"
注意:替换中的左括号和右括号以及点是文字字符。
【讨论】: