Bu soru gis.stackexchange adresinde karşılaştığım bir önceki soru üzerine kuruludur: Düzenli İfadeler kullanarak özellik verilerini kolayca nasıl düzenleyebilirim?
Belki biri beni doğru yönde gösterebilir?
Kontur çizgilerinin bir vektör şekil dosyası var. Özellik tablosunda, yükseklik değerleri içeren tamsayı verilerden oluşan FEET adlı bir alanı zaten Label adlı bir dize alanına dönüştürdüm. Ayrıca, veri etiketlendiğinde ayak olarak okunacak şekilde başarıyla dizenin sonuna bir 'ekledi.
Yapmaya çalıştığım bir sonraki şey, yalnızca dize uzunluğu 4'ten büyükse dizenin ilk iki değeri arasına bir virgül eklemektir, ya da virgül yalnızca Etiket alanında binlerce ve yüzlerce basamak arasında görünecektir. Uzunluk 4'ten büyük olmalı çünkü ben de '
Kodum şu ana kadar:
case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end
ancak regexp_replace işlevi, işlevin 3. parametresinde $ 1 $ 2 grup değişkenlerini kabul etmez.
Http://docs.python.org/2/library/re.html adresine baktım, çünkü alan hesap makinesi regex'i python'un regex kullanımına dayalı olarak anladığım kadarıyla ama bunu anlayamadım. Belki de yapmaya çalıştığım, mac OSX'te QGIS 1.8'deki alan hesap makinesindeki bu işlevle henüz mümkün değil. Ya da acemi bir programcı olduğum ve düzenli ifadelerde biraz yeni olduğum için sözdizim yanlış olabilir.