【发布时间】:2018-09-12 14:28:51
【问题描述】:
我有一些以下模式的文本字符串。
x = "sdfwervd \calculus{fff}{\trt{sdfsdf} & \trt{sdfsdf} & \trt{sdfsdf} \\{} sdfsdf & sdfsdf & sefgse3 } aserdd wersdf sewtgdf"
我想使用正则表达式来捕获字符串
\calculus{fff}中的文本"fff"并将其替换为其他内容。此外,我想捕获
\calculus{.+}之后的第一个{与其对应的右大括号}之间的字符串。
如何在 R 中使用正则表达式?
以下内容捕捉到最后一个花括号之前的所有内容。
gsub("(\\calculus\\{)(.+)(\\})", "", x)
【问题讨论】:
-
首先,
x字符串文字中的反斜杠必须加倍(但不确定\\{},"\\{}"=>\{})。那么c之前的反斜杠就可以匹配2个文字反斜杠,即字符串文字中的4个反斜杠。要匹配尽可能少的字符,请将.*替换为.*?。gsub用一些替换替换匹配,您正在删除整个匹配,并且只删除匹配。 -
可以试试 gsub("(\\calculus\\{)(.+)(\\})", "(\\calculus\\{)(###)(\ \})", x)
标签: r regex gsub brackets curly-braces