다음 형식의 영숫자 값을 포함하는 필드가 있습니다.
A-AA00
때때로 그들은 또한
A-AAA0
최소한 숫자를 제거하고 알파벳과 하이픈을 재교육하는 ArcMap 10의 필드 계산기에 넣을 수있는 Python 스크립트가 필요합니다. 예를 들어 다음과 같습니다.
A-AA0
이된다 :
A-AA
또한 숫자 문자를 다른 필드의 숫자 문자로 바꾸고 싶습니다. 이 스택 교환 항목은이 문제를 해결하지만 문자열 앞에 숫자가 있기 때문에 분할 및 인덱싱에 사용할 수 있습니다.
답변
정규식 을 사용 합니다 . 계산기의 코드 블록 섹션에 다음을 넣으면 모든 숫자가 제거 된 문자열을 반환합니다.
import re
def strip_digits(s):
return re.sub("\d+", "", s)
그런 다음 계산 상자에서 다음과 같이 호출 할 수 있습니다.
strip_digits(!column_name!)
문자를 바꾸려면 대체 문자의 함수에 다른 인수를 추가하여 빈 문자열 대신 넣으십시오.
답변
그냥 스트립을 사용하십시오
s="AAAA-000"
print s.strip("0, 1,2,3,etc")
AAAA-
답변
나는 또한 매핑 센터 (arcgis.com)에서 이것을 발견했다.
리소스 센터 텍스트 관리 도구
9.2 / 9.3 용으로 작성된 오래된 코드입니다. 10.x의 적합성에 대해 잘 모르겠습니다.
- 배치 찾기 및 바꾸기 :이 도구는 텍스트 필드의 문자열을 찾기 / 바꾸기 테이블에 지정된 대체 문자열로 채 웁니다. 이는 레이블 문자열을 표준화하거나 표준 약어를 도입하고 시행하는 데 유용합니다.
- 텍스트를 적절한 대소 문자로 변환 :이 도구는 한 필드의 텍스트 문자열 (모두 대문자 또는 모두 소문자로 간주 됨)을 다른 (새) 필드의 적절한 대소 문자 (대소 문자 혼합) 텍스트 문자열로 변환합니다. 이 도구는 북동쪽의 NE와 같은 일반적인 약어를 처리하기 위해 작성되었으므로 Ne로 나오지 않습니다.
- Hwy Shield 레이블의 Hwy 번호 추출 : 고속도로 이름의 숫자 부분을 다른 텍스트 필드에 추가합니다.
이 모든 도구는 Python으로 작성되었으며 특정 요구 사항을 충족하도록 수정할 수 있습니다.
답변
이 간단한 경우부터 시작하겠습니다.
>>> x = "A-AA00"
>>> print x
A-AA00
>>> print x.replace("0","")
A-AA
>>>
거기 에서 ArcGIS 10 Help의 Python 용 코드 블록 예제 중 일부 는 전체 솔루션에 대한 출발점이 될 것입니다.