0

実行中のアプリケーションで、誤ってすべてのデータベース フィールドに u'text' が保存されてしまいました。これらのフィールドを読み取り、u'text' をテキストに置き換えるスクリプトを作成する必要があります。

u' で始まる文字列の先頭と ' で終わる文字列の終わりを読み取り、それらを何も置き換えないような正規表現を Python でどのように書くことができますか?正規表現の周りが悪い。

どんな助けでも大歓迎です、

4

2 に答える 2

3

u" "文字列に一重引用符が含まれている場合は、代わりに で区切られた文字列がいくつかあることに注意してください。また、エスケープ シーケンスがある場合もあります。ast.literal_evalあなたのためにすべてを処理できます:

from ast import literal_eval

def convert(original):
    try:
        result = literal_eval(original)
        if isinstance(result, unicode):
            return result
    except ValueError:
        pass
    return original
于 2013-03-24T09:30:25.433 に答える
1

これはそれを行う必要があります:

import re
re.sub("^u'(.*)'$",r'\1',"u'text'")
-> text

これは、先頭/末尾の文字がない単一の値の文字列で機能します (例: "u'text'")。

文字列内の u'text' をすべて置き換えたい場合は、代わりに次のようにします。

re.sub("u'([^']*)'",r'\1',STRING)

例えば:

re.sub("u'([^']*)'",r'\1',"u'value1',u'value2',u'value3'")
-> value1,value2,value3
于 2013-03-23T15:01:15.663 に答える