私は質問があります。postgresqlのバックスラッシュに関して
私はバックスラッシュで少し混乱している私は、re.sub("([0-9])",thereplacement,"2")
で正規表現の代替として、この文字列を使用する「\の1abc」
のように見えるテーブルのレコードを持っています。私が戻った文字列は"\\1abc"
私は質問があります。postgresqlのバックスラッシュに関して
私はバックスラッシュで少し混乱している私は、re.sub("([0-9])",thereplacement,"2")
で正規表現の代替として、この文字列を使用する「\の1abc」
のように見えるテーブルのレコードを持っています。私が戻った文字列は"\\1abc"
です。あなたは対話的にpythonを使っていますか?
通常の文字列では、コード内でバックスラッシュをエスケープするか、r "..."を使用する必要があります(docsへのリンク)。対話的にPythonを実行していて、データベースの結果を変数に代入しない場合は、__repr__()
メソッドを使用して出力されます。
>>> s = "\\1abc"
>>> s
'\\1abc' # <-- How it's represented in Python code
>>> print s
\1abC# <-- The actual string
また、あなたのre.subは少し奇妙です。 1)あなたはパターンとして[0-9]を意味するのでしょうか? (1桁の一致)。引数はおそらくthereplacement
があなたの入力であるならば、おそらくswitcheです。これは、構文は次のとおりです。
re.sub(pattern, repl, string, count=0)
だから私の推測では、あなたがこのような何かを期待です:
>>> s_in = yourDbMagic() # Which returns \1abc
>>> s_out = re.sub("[0-9]", "2", s_in)
>>> print s_in, s_out
\1abc \2abc
編集:が良いエスケープ/表現を説明しようとしたが。
standard_conforming_stringsをonに設定すると、\ stopをエスケープ文字にすることができます。
私は同意します:standard_conforming_strings = onを使用して行くことです。 Btw:9.0のデフォルトです。 –
私のサブストリングを編集しました。そこに不注意なミス。まあ、私は実際に "2"を置き換えようとしています。ああ、私は対話的にPythonを使用していません。 – goh