我正在寻找正则表达式(最好是 in R
),它可以用 say 替换(任意数量的)特定字符;
say;;
但仅当文本字符串内的括号内不存在时()
。
注意: 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"
Run Code Online (Sandbox Code Playgroud)
预期输出(手动计算)
[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"
Run Code Online (Sandbox Code Playgroud) 我的问题在某种程度上与一个已经回答的问题需要使用 R 从字符串列中提取单个字符有关。
我尝试用我的知识解决这个问题,并且需要知道如何删除字符串中括号中的非数字字符:`
这是带有列的数据框x
:
team linescore ondate x
1 NYM 010000000 2020-08-01 0, 1, 0, 0, 0, 0, 0, 0, 0
2 NYM (10)1140006x) 2020-08-02 (, 1, 0, ), 1, 1, 4, 0, 0, 0, 6, x, )
3 BOS 002200010 2020-08-13 0, 0, 2, 2, 0, 0, 0, 1, 0
4 NYM 00000(11)01x 2020-08-15 0, 0, 0, 0, 0, (, 1, 1, ), 0, 1, x
5 BOS 311200 2020-08-20 3, 1, 1, 2, …
Run Code Online (Sandbox Code Playgroud)