pythonでregexを使って以下の形式のlat longを抽出する必要があります。私はこのトピックに新たなんだとpythonを使って緯度と経度を抽出する正規表現
(-17.23465,4.6883)
私はこの上で私を導くためにいくつかのいずれかが必要です。あなたがやりたい
おかげ
pythonでregexを使って以下の形式のlat longを抽出する必要があります。私はこのトピックに新たなんだとpythonを使って緯度と経度を抽出する正規表現
(-17.23465,4.6883)
私はこの上で私を導くためにいくつかのいずれかが必要です。あなたがやりたい
おかげ
最も単純な正規表現は\(([^,]*),([^\)]*)\)
です。
最も明確な正規表現のソリューションは、次のとおりです。
> import re
> match = re.match('^\((?P<lat>-?\d*(.\d+)),(?P<long>-?\d*(.\d+))\)$',
'(-17,23465,4.6883)')
> float(match.group('lat'))
-17.23465
> float(match.group('long'))
4.6883
だけで文字列操作を使用して、最も簡単な解決策は次のとおりです。
> latlong = '(-17,23465,4.6883)'
> lat, long = [float(x) for x in latlong[1:-1].split(',')]
実際には正規表現の詳細については、Online regex testerを使用(のpythonを設定フレーバー)。 Pythonの正規表現に関する詳細は、Regular Expression HOWTOを参照してください。
あなたが個別に緯度と経度をしたいと仮定すると、あなたが提供している値が文字列である、あなたが行うことができます:
val = '(-17.23465,4.6883)'
val = val.replace('(', '').replace(')', '').split(',')
lat = val[0]
lon = val[1]
出力:何かが間違って何
lat: -17.23465
lon: 4.6883
'val'が文字列であることを意味しましたか?このコードは 'AttributeError'を発生させるため、' AttributeError: 'tuple'オブジェクトには 'replace''属性がありません。 –
@ChristianDeanはい、良い呼び出しです。私は自分の答えを更新しました。それを指摘していただきありがとうございます! – jape
' lat、long =(-17.23465,4.6883) '? –
いいえ、私は言及したようにフォーマットで長いlatを持っています。 –
...その形式はタプルです。そうでなければ、それは文字列であるはずです。 – ryugie