使用正则表达式

时间:2017-10-19 12:51:36

标签: r regex

我正在研究我的一个课程中最近的#{1}}标签。我试图让这个主题标签出现在推文中,但当然没有人使用相同的格式。

有些人使用#BalanceTonPorc,有些#BalanceTonPorc和儿子等等。

使用#balancetonporc,我到目前为止已完成此操作:

gsub

我想要的是什么,这个#标签的所有变体都存储在同一个标​​签下。但是还有很多其他的变化。有些人使用df$hashtags <- gsub(".alance.on.orc", "BalanceTonPorc", df$hashtags) #BalanceTonPorc...

有没有办法让一个RegEx说我希望包含#BalanceTonPorc.的所有内容都包含在hashtag之后的每个字符,除了.alance.on.orc(因为它分隔了hashtags)?这是一个截图来说明我的意思。

enter image description here

我还有另一个问题,在我的频率表中我有两次,,所以我猜R必须考虑它们是不同的。你能发现差异吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用[^,]*来匹配任何字符,但,,0 +次出现:

gsub(".alance.on.orc[^,]*", "BalanceTonPorc", df$hashtags)

或者,要完全匹配balancetonporc

gsub("balancetonporc[^,]*", "BalanceTonPorc", df$hashtags, ignore.case=TRUE)

查看regex demoR online test

x <- c("#balancetonPorc#%$%#$%^","#balancetonporc#%$%, text")
gsub("balancetonporc[^,]*", "BalanceTonPorc", x, ignore.case=TRUE)
# => [1] "#BalanceTonPorc"       "#BalanceTonPorc, text"