2016-09-15 14 views
0

私はこれのように見えるデータセットを持っているを使用してそれを削除するには、だから私はすべての@とそれに接続されている言葉を取り除くためにしようとしています。私のデータセットはこのように見えるはずです。サブ文字列を検索し、正規表現、Pythonの

"See the new #Gucci 5th Ave NY windows customized by for the debut of the #GucciGhost collection." 
    "Before the #GucciGhost collection debuts tomorrow, read about the artist" 

私は@を取り除くために単純な置換ステートメントを使用できます。しかし、隣接する単語は問題です。

私はreを使用してオカレンスを検索/検索しています。しかし、私はこの言葉を削除することができません。

P.S - 1つの単語だった場合、問題はありませんでした。しかし、あなたが正規表現

import re 

a = [ 
"See the new #Gucci 5th Ave NY windows customized by @troubleandrew for the debut of the #GucciGhost collection.", 
"Before the #GucciGhost collection debuts tomorrow, read about the artist @troubleandrew" 
] 
pat = re.compile(r"@\S+") # \S+ all non-space characters 
for i in range(len(a)): 
    a[i] = re.sub(pat, "", a[i]) # replace it with empty string 
print a 

を使用することができます@

+0

あなたの問題は何ですか?どのコードが@ +単語を削除しないのですか?あなたは 're.sub 'を試しましたか? –

+0

私の問題は、私が@ +単語全体を取り除くことができなかったことでした。私は 're.findall'を使っていました。とにかく、 're.sub'が動作します。ありがとう –

答えて

2

に添付私のデータセット内の複数の単語あちこちがあるこれは何をしたいあなたを与えるだろう。

0

慣用的なバージョン、潜水艦余分なスペース:

import re 

a = [ 
    "See the new #Gucci 5th Ave NY windows customized by @troubleandrew for the debut of the #GucciGhost collection.", 
    "Before the #GucciGhost collection debuts tomorrow, read about the artist @troubleandrew" 
] 

rgx = re.compile(r"\[email protected]\S+") 

b = [ re.sub(rgx, "", row) for row in a ] 

print b 

\s?\sマッチ' 'zero or one発生の?スタンド。

関連する問題