我正在尝试使用R中的-
从字符串中删除所有'
,*
,gsub
除了字符串之外的字符串,但是我遇到了问题用词内星号。
例如,这句话:a* dash-- 'can't see intra-word-hyphen f**eb**k'
应该成为a dash can't see intra-word-hyphen f**eb**k
。 (给予或采取一些额外的空格,这无关紧要。)上一步中已经删除了所有其他标点符号。
我现在使用的正则表达式可以保留字内连字符和撇号,但不能保留星号,我无法弄清楚原因。
gsub("(\\w['*-]\\w)|[[:punct:]]", "\\1", x)
这会产生:a dash can't see intra-word-hyphen febk
当我试图逃避星号时,就像这样:
gsub("(\\w['\\*-]\\w)|[[:punct:]]", "\\1", x)
它仍然提供相同的输出。
如何让R识别[ ]
中的星号作为文字?
答案 0 :(得分:0)
在这种情况下,你似乎忘了允许多个星号:
x <- "a* dash-- 'can't see intra-word-hyphen f**eb**k'"
gsub("(\\w['*-]*\\w)|[[:punct:]]", "\\1", x)
# [1] "a dash can't see intra-word-hyphen f**eb**k"
一般来说,要逃离*
,您需要\\*
。