【发布时间】:2021-11-23 09:19:42
【问题描述】:
我在 https://regex101.com/r/R8ObNk/1 (^[^\\]*)\\t([^\\]*)\\t([^\\]*)\\t([^\\]*)\\t([^\\]*)(.*) 中编写了正则表达式,并反向引用了捕获组 5 或“\5”。
由于某种原因,当我尝试使用上面使用 gsub 在 R 中编写的正则表达式时,我没有返回正确的数据。
这是我试图反向引用的第一行数据的 dput:
structure(list(value = "19-22\t\t4\tP,G\tDOB_TT\t\tTime of Birth\t\t126\t \t0000-2359 Time of Birth"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -1L))
这是上面一行的 gsub:gsub(pattern = "(^[^\\]*)\\t([^\\]*)\\t([^\\]*)\\t([^\\]*)\\t([^\\]*)(.*)", replacement = "\\5", x = a$value)。我知道您在使用 R 中的正则表达式时应该添加另一个“\”,但这仍然不起作用。
gsub 的预期结果应该是“DOB_TT”或第 5 个捕获组
【问题讨论】:
-
无论是在字符串插值之前还是之后,都可以压缩一点^(?:[^\\\n]*\\t){4}([^\\\n]*).*,然后替换为
\1