该问题基于我在gis.stackexchange上遇到的上一个问题: 如何使用正则表达式轻松编辑属性数据?
也许有人可以指出我正确的方向?
我有轮廓线的矢量shapefile。在属性表中,我已经将一个名为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函数似乎在函数的第3个参数中不接受组变量$ 1 $ 2。
我查看了http://docs.python.org/2/library/re.html,因为根据python对regex的使用,据我所知,字段计算器正则表达式是我所了解的,但一直无法弄清楚。使用Mac OSX上的QGIS 1.8中的字段计算器中的此功能,也许我要尝试执行的操作尚无法实现。或者更可能是我的语法错误,因为我是新手程序员,并且对正则表达式有些陌生。