【发布时间】:2021-08-25 09:45:06
【问题描述】:
我正在寻找正则表达式(最好在 R 中),它可以用 ;; 替换(任意数量的)特定字符,比如 ;,但只有当括号内的 不存在 @987654324 @ 在文本字符串中。
注意:1.括号内也可能有多个替换字符
2。数据/向量中没有嵌套括号
例子
-
text;othertext替换为text;;othertext - 但
text;other(texttt;some;someother);more将替换为text;;other(texttt;some;someother);;more。 (即;仅在()之外用替换文本替换)
如果需要澄清,我会尽力解释
in_vec <- c("abcd;ghi;dfsF(adffg;adfsasdf);dfg;(asd;fdsg);ag", "zvc;dfasdf;asdga;asd(asd;hsfd)", "adsg;(asdg;ASF;DFG;ASDF;);sdafdf", "asagf;(fafgf;sadg;sdag;a;gddfg;fd)gsfg;sdfa")
in_vec
#> [1] "abcd;ghi;dfsF(adffg;adfsasdf);dfg;(asd;fdsg);ag"
#> [2] "zvc;dfasdf;asdga;asd(asd;hsfd)"
#> [3] "adsg;(asdg;ASF;DFG;ASDF;);sdafdf"
#> [4] "asagf;(fafgf;sadg;sdag;a;gddfg;fd)gsfg;sdfa"
预期输出(手动计算)
[1] "abcd;;ghi;;dfsF(adffg;adfsasdf);;dfg;;(asd;fdsg);;ag"
[2] "zvc;;dfasdf;;asdga;;asd(asd;hsfd)"
[3] "adsg;;(asdg;ASF;DFG;ASDF;);;sdafdf"
[4] "asagf;;(fafgf;sadg;sdag;a;gddfg;fd)gsfg;;sdfa"
【问题讨论】:
-
请告知是否需要澄清
-
添加一些您尝试过的代码可能有助于使您所考虑的过程更加清晰
-
我也想知道上游是否有解决方案——文本是否必须以这种方式开始?还是您无法控制的情况?
-
@nicola,数据/向量中没有嵌套括号。
-
@AnilGoyal 太好了,我认为您应该将此信息添加到问题中,因为它与构建解决方案非常相关(使用嵌套括号会更难)。
标签: r regex gsub string-substitution