ESPNのBPIページ(http://www.espn.com/mens-college-basketball/bpi/_/view/resume)から大学のバスケットボールチームのデータを盗んで、パンダのデータフレームに保存しています。 htmlテーブルをデータフレームに読み込むと、省略された学校名が完全な学校名に追加されます。たとえば、「North CarolinaUNC」というような文字列がいくつかあります。小文字の前に文字列の最後から大文字を削除するにはどうすればよいですか?
文字列の最後からUNCを削除するにはどうすればよいですか?
name = "North CarolinaUNC"
name = re.sub(r"\z[A-Z]","", name)
が、それは名前が二つの単語で構成されている学校のために動作しません:私は、文字列の末尾の文字にマッチする正規表現の下にしようとしました。小文字の前に大文字を含むルールを書く方法はありますか?
North Carolina
で
import re
name = "North CarolinaUNC"
name = re.sub(r"(?<=[a-z])[A-Z]+$","", name)
結果、すべての権利:大文字は小文字の後に来るかどうかをチェックするために、文字列の末尾、および非マッチングの後読みに一致するように
残念ながら、Pythonの正規表現フレーバーに '\ z'アンカーが存在しないので、文字列の終わりまたは行末に一致するために' $ 'を使用する必要があります( 'mモディファイアがオンまたはオフに切り替わります)*。 –
Pythonでは、 '\ Z'は文字列の最後に一致します。しかし、 '$'はここで十分ですが、右に置いてください。 '[A-Z]'は '+ 'でなければなりません。以下の回答を参照してください。 –
@Kaushikあなたのタイトルはあなたの「あなたが文字列の前に小文字があるときに大文字を取り除くルールを書いていますか?」と一致しません。どちらですか?私はあなたが "Foo UNC"から "UNC"を削除したくないと思います。右? –