簡體   English   中英

python正則表達式從unicode輸出中刪除u'some text'

[英]python regular expression to remove u'some text' from the unicode output

我有一個正在運行的應用程序,該應用程序已將u'text'錯誤地存儲到所有數據庫字段中。 我現在需要創建一個腳本來讀取這些字段並將u'text'替換為text。

任何人都可以幫助我如何在python中編寫這樣的正則表達式,該規則表達式將讀取以u'開頭的字符串的開頭和以'結尾的字符串的結尾,然后什么都不替換。.我嘗試了幾種方法,但是正則表達式不好。

任何幫助將不勝感激,

請注意,如果字符串包含單引號,則可能會有一些用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

應該這樣做:

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

這將對不帶前導/尾隨字符(例如“ u'text'”)的單個值字符串起作用。

如果要替換字符串中所有'u'文本,請執行以下操作:

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

例如:

re.sub("u'([^']*)'",r'\1',"u'value1',u'value2',u'value3'")
-> value1,value2,value3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM