2017-10-19 16 views
1

私は最近のハッシュタグ#BalanceTonPorcを私のクラスの一つで研究しています。私はこのハッシュタグの出現をつぶやきにすべて表示しようとしていますが、もちろん誰も同じフォーマットを使用していません。正規表現を使用してすべてのハッシュタグを取得

#BalanceTonPorc、若干#balancetonporc、息子などを使用する人もいます。

gsubを使用して、私がこれまでに行ってきた:

私が欲しいものを行い、このハッシュタグのすべてのバリエーションが同じ1の下に格納されている
df$hashtags <- gsub(".alance.on.orc", "BalanceTonPorc", df$hashtags) 

。しかし、他にもたくさんのバリエーションがあります。一部の人々は、私は(それがハッシュタグを区切るため),除くハッシュタグの後の可能なすべての文字、と.alance.on.orcが含まれているすべてのものをしたいと言う正規表現を持ってする方法はあり#BalanceTonPorc...または#BalanceTonPorc.

を使用しましたか?ここに私が意味するものを説明するためのスクリーンショットがあります。

enter image description here

私はまた別の問題を抱えている、私の周波数テーブルに私は二回#BalanceTonPorcを持っているので、私はRが異なるようにそれらを考慮しなければならないと思います。あなたは違いを見つけることができますか?

enter image description here

答えて

2

あなたが任意の文字に一致するように[^,]*を使用することができますが,、0+出現:

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

か、正確にbalancetonporcに一致するように、

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

regex demoとを参照してください。 R online test

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

ありがとうございます!私は 'ignore.case'について知らなかった、それはかなりクールです!私の2番目の問題については、Rが表示しなかったのはスペースの問題に過ぎず、 '[^、] * 'を使って解決しました。良い日を過ごしてください:) –

+0

@ArnaudStephanまた、[**否定された文字クラス**](https://www.regular-expressions.info/charclass.html#negated)についての詳細を参照してください。あなたが私に尋ねるならば、非常に便利で効率的な構成です。 –

関連する問題