이 질문은 gis.stackexchange : 정규 표현식을 사용하여 속성 데이터를 쉽게 편집하는 방법 에서 접했던 이전 질문을 바탕으로합니다 .
누군가가 올바른 방향으로 나를 가리킬 수 있습니까?
등고선의 벡터 shapefile이 있습니다. 속성 테이블에서 고도 값을 포함하는 정수 데이터로 구성된 FEET 필드를 이미 Label이라는 문자열 필드로 변환했습니다. 또한 문자열 끝에 '를 성공적으로 추가하여 데이터에 레이블을 지정할 때 피트로 읽습니다.
다음으로해야 할 일은 문자열 길이가 4보다 큰 경우에만 문자열의 처음 두 값 사이에 쉼표를 삽입하거나 쉼표가 레이블 필드의 수천 자리와 수백 자리 사이에만 표시되도록하는 것입니다. 길이도 4보다 커야합니다.
지금까지 내 코드는 다음과 같습니다
case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end
그러나 regexp_replace 함수는 함수의 세 번째 매개 변수에서 그룹 변수 $ 1 $ 2를 허용하지 않는 것 같습니다.
필자는 필드 계산기 정규 표현식이 파이썬의 정규 표현식 사용을 기반으로 이해 한 것으로 http://docs.python.org/2/library/re.html 을 보았지만 이것을 알아낼 수 없었습니다. 어쩌면 내가 시도하는 것은 Mac OSX의 QGIS 1.8의 필드 계산기 에서이 기능으로 아직 가능하지 않을 수 있습니다. 또는 초보자 프로그래머이므로 정규 표현식에 익숙하지 않기 때문에 구문이 잘못되었을 가능성이 큽니다.