【发布时间】:2020-09-21 11:47:28
【问题描述】:
我想匹配一个 "\sequence" 字符串,但不是在反斜杠被转义时。
我认为这样做的一种方法可能是匹配奇数个反斜杠,例如:
\code 将是 1234,但 \\code 应保持原样,\\\code 将是 \\1234,等等。
在 R 中,给定字符串:
message(o <- "\\\\\\code")
# \\\code
message(e <- "\\\\code")
# \\code
R 中的部分工作尝试是:
message(gsub("((?:\\\\{2})?)\\\\code", "\\11234", o, perl=TRUE))
# \\1234
message(gsub("((?:\\\\{2})*)\\\\code", "\\11234", e, perl=TRUE))
# \1234
正则表达式匹配奇数和偶数大小写。为了使它起作用,我应该找到一种更贪婪地匹配双反斜杠“\”的方法(总是在它们存在时),这样第二个反斜杠就不会了。
当然,如果有更好的策略来匹配“\sequence”(当不转义时),那也同样可以。
【问题讨论】:
标签: r regex escaping regex-greedy regexp-replace