この質問は、gis.stackexchange: 正規表現を使用して属性データを簡単に編集するにはどうすればよいですか?
おそらく誰かが私を正しい方向に向けることができますか?
輪郭線のベクトルシェープファイルがあります。属性テーブルでは、標高値を含む整数データで構成されるFEETというフィールドを、Labelという文字列フィールドに既に変換しています。さらに、データにラベルが付けられたときにフィートとして読み取られるように、文字列の最後に 'を追加しました。
次に行うことは、文字列の長さが4より大きい場合にのみ、文字列の最初の2つの値の間にコンマを挿入することです。つまり、コンマが[ラベル]フィールドの数千から数百桁の間にのみ表示されるようにします。長さは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の正規表現の使用に基づいて理解したものですが、これを理解することができなかったためです。Mac OSX上のQGIS 1.8のフィールド計算機でこの関数を使用して、私がやろうとしていることはまだできないかもしれません。あるいは、私は初心者のプログラマーであり、正規表現はやや新しいため、構文が間違っている可能性があります。