Cette question s'appuie sur une question précédente que j'ai rencontrée sur gis.stackexchange: Comment modifier facilement les données d'attribut à l'aide d'expressions régulières?
Peut-être que quelqu'un peut me diriger dans la bonne direction?
J'ai un fichier vectoriel de courbes de niveau. Dans la table d'attributs, j'ai déjà converti un champ appelé FEET composé de données entières contenant des valeurs d'élévation en un champ de chaîne appelé Label. De plus, j'ai correctement ajouté un 'à la fin de la chaîne de sorte que lorsque les données sont étiquetées, elles seront lues comme des pieds.
La prochaine chose que j'essaie de faire est d'insérer une virgule entre les deux premières valeurs de la chaîne uniquement si la longueur de la chaîne est supérieure à 4, ou pour qu'une virgule n'apparaisse qu'entre les milliers et les centaines de chiffres dans le champ Étiquette. La longueur doit être supérieure à 4 car je compte également le '
Jusqu'à présent, mon code est:
case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end
cependant la fonction regexp_replace ne semble pas accepter les variables de groupe $ 1 $ 2 dans le 3ème paramètre de la fonction.
J'ai regardé http://docs.python.org/2/library/re.html car l'expression rationnelle de la calculatrice de champ provient de ce que je comprends basée sur l'utilisation de l'expression rationnelle par python mais je n'ai pas été en mesure de le comprendre. Peut-être que ce que j'essaie de faire n'est pas encore possible avec cette fonction dans la calculatrice de champ dans QGIS 1.8 sur mac OSX. Ou plus probablement ma syntaxe est erronée car je suis un programmeur débutant et quelque peu nouveau pour les expressions régulières.