如何在python中用某种格式替换字符串

时间:2015-08-17 15:45:52

标签: python string

我正在尝试根据格式进行字符串操作。 str.replace(旧的,新的)以特定的字符串模式改变。是否可以通过格式查找和替换?例如, 我想在长字符串中找到所有日期时间值,并将其替换为其他格式 假设%是通配符,数字和日期时间是%%/%%/%%T%%:%%

str.replace(%%/%%/%%T%%:%%, 'dummy value')

编辑: 对不起,我应该更清楚一点。 re.sub似乎我可以使用它,但它如何用日期转换值替换它。在这种情况下,例如     YY / MM / DDTHH:MM到(YY / MM / DD HH:MM)+8小时

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用正则表达式语法的组合,应用re.sub并使用repl参数可以是一个match>>> from datetime import datetime >>> import re >>> def replacer(match): return datetime.strptime( match.group(), # matched text '%y/%m/%dT%H:%M', # source format in datetime syntax ).strftime('%d %B %Y at %H.%M') # destination format in datetime syntax >>> re.sub( r'\d{2}/\d{2}/\d{2}T\d{2}:\d{2}', # source format in regex syntax replacer, # function to process match 'The date and time was 12/12/12T12:12 exactly.', # string to process ) 'The date and time was 12 December 2012 at 12.12 exactly.' 的函数的事实。返回一个字符串来替换它,datetime's syntax for strptime and strftime

datetime

唯一的缺点是你需要用re"Error inflating class com.test.ui.shimmer.ShimmerTextView"语法来定义源格式,这种格式不是很干;如果他们不匹配,你将无处可去。