[英]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.