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이 (파이썬을 설정 사용 맛). 파이썬의 정규 표현식에 대해 더 많이 배우려면 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)'? –
아니요, 내가 언급 한 형식의 long을 가지고 있습니다. –
... 그 형식은 튜플입니다. 그렇지 않은 한, 그것은 문자열이되어야합니다. – ryugie