我正在努力获得一个与所有出现在方括号内的双引号字符("
)匹配的RegEx表达式。
我有不同的作品来完成我想要的部分。例如,
gsub('"', "", '"""xyz"""')
[1] "xyz"
将获得所有双引号,而不管其他任何内容。
gsub('\\[(.*?)\\]', "", '[xyz][][][]abc')
[1] "abc"
将所有内容都放在两个方括号内,包括方括号本身(我不想发生-如何避免这种情况?)。
我也不确定一旦将它们都工作后如何将两者结合。这是所需行为的示例。给定一个输入字符串["cats", "dogs"]"x"
,我想要一个表达式,该表达式将替换方括号内的四个"
字符,而不是方括号内的四个。
更具体地说:
gsub('THE_REGEX', "", '["cats", "dogs"]"x"')
应该返回
[cats, dogs]"x"
当双引号出现在方括号内时,我想删除双引号,但是当双引号出现在方括号内时,我不想删除。
我正在努力获得一个正则表达式,该表达式与方括号中出现的所有双引号字符(“)匹配。我有不同的代码来满足我想要的部分。例如,gsub('”',“。 ..
基于\G
的模式可确保匹配之间保持连续性,并且始终位于方括号之间:
gsub('(?:\\G(?!\\A)|\\[)[^]"]*\\K"', "", '["cats", "dogs"]"x"', perl=TRUE)
使用gsubfn
搜索[...],然后将每个匹配项传递给所指示的gsub函数。比赛以外的所有事物都将保持不变。