Этот вопрос основан на предыдущем вопросе, с которым я столкнулся на gis.stackexchange: как легко редактировать данные атрибутов с помощью регулярных выражений?
Возможно, кто-то может указать мне правильное направление?
У меня есть векторный шейп-файл контурных линий. В таблице атрибутов я уже преобразовал поле с именем FEET, состоящее из целочисленных данных, содержащих значения высот, в строковое поле с именем Label. Кроме того, я успешно добавил '' в конец строки, чтобы при пометке данных они читались как ноги.
Следующее, что я пытаюсь сделать, это вставить запятую между первыми двумя значениями строки, только если длина строки больше 4, или так, что запятая будет появляться только между тысячами и сотнями цифр в поле Label. Длина должна быть больше 4, потому что я также считаю '
Мой код до сих пор:
case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end
однако функция regexp_replace, похоже, не принимает групповые переменные $ 1 $ 2 в 3-м параметре функции.
Я посмотрел на http://docs.python.org/2/library/re.html, поскольку регулярное выражение полевого калькулятора основано на том, что, как я понимаю, основано на использовании регулярных выражений в python, но я не смог понять это. Возможно, то, что я пытаюсь сделать, пока невозможно с этой функцией в полевом калькуляторе в QGIS 1.8 на Mac OSX. Или, скорее, мой синтаксис неправильный, так как я начинающий программист и немного новичок в регулярных выражениях.