删除其余部分时保留字内星号

时间:2015-03-29 19:13:30

标签: regex r

我正在尝试使用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识别[ ]中的星号作为文字?

1 个答案:

答案 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"

一般来说,要逃离*,您需要\\*