正则表达式 – 等效正则表达式,以删除所有标点符号
发布时间:2020-12-14 05:46:35 所属栏目:百科 来源:网络整理
导读:在R中,为了从字符串中删除标点符号,我可以这样做: x - 'a#,g:?s!*$t/{u}dy'gsub('[[:punct:]]','',x)[1] "agstudy" 这很聪明,但我没有严格控制删除的标点符号(想象一下我想在我的角色中保留一些符号).如何在不忘记任何符号的情况下以更明确的方式重写此gs
在R中,为了从字符串中删除标点符号,我可以这样做:
x <- 'a#,g:?s!*$t/{u}d&;y' gsub('[[:punct:]]','',x) [1] "agstudy" 这很聪明,但我没有严格控制删除的标点符号(想象一下我想在我的角色中保留一些符号).如何在不忘记任何符号的情况下以更明确的方式重写此gsub,如下所示: gsub('[#,:?!*$/{}&]',x,perl=FALSE) 编辑 我遇到的困难是如何编写正则表达式(我更喜欢在R中)从x中删除所有标点字符,并仅保留#例如: "a#gstudy" 解决方法
使用否定先行断言:
x <- 'a#,g:?s!*$t/{u}d&y' gsub('(?!#)[[:punct:]]',perl=TRUE) # [1] "a#gstudy" 这本质上是对每个字符进行两次测试,从前面的字符间空间询问一次下一个字符是否是“#”以外的字符,然后从字符本身询问它是否是标点符号.如果两个测试都为真,则会注册匹配并删除该字符. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |