2016-03-19 14 views
-1

で何が間違っている:私は"Aldar Tower""Dubai Marina"Pythonは、私はこのテキストを持っている私の正規表現

これを抽出したい

1 Bedroom Apartment To Rent In Aldar Tower, Dubai Marina 

は、私が試したものです:

areaAndBuilding = re.search("\* Rent In \s*", value) 
area = areaAndBuilding.split(",")[0] 
building = areaAndBuilding.split(",")[1] 

が、問題areaAndBuildingは常にNoneです。

+0

正規表現に関する質問がある場合は、そのようにタグ付けすると便利です。 – MattDMo

答えて

1

あなたは一度だけ一致させたいので、ここでは(searchは、複数の一致のためである)、re.match代わりのre.searchを使用する別の正規表現です:

areaAndBuilding = re.match(".* Rent In (.*), (.*)", value) 

次にあなたがre.groupを使用して、ご希望の要素にアクセスすることができます

area = areaAndBuilding.group(1)  # Aldar Tower 
building = areaAndBuilding.group(2) # Dubai Marina 

areaAndBuildingは正規表現が正しくないため一致しなかったため、Noneは常にNoneでした。あなたの正規表現が動作するかどうかを確認する最良の方法は、Python以外でそれらをテストすることです。 Regex101を使用することをおすすめします。

+0

なぜ 're'ですか?私はあなたがグループのstatmentで 'areAndBuilding'を意味するのでしょうか? –

+0

@michaelSalamおっと、はい。私はそれを変更します –

+0

@michaelSalam私は自分のコードを変更しました - それはあなたのために働くのですか? –

関連する問題