我正在尝试根据格式进行字符串操作。 str.replace(旧的,新的)以特定的字符串模式改变。是否可以通过格式查找和替换?例如,
我想在长字符串中找到所有日期时间值,并将其替换为其他格式
假设%是通配符,数字和日期时间是%%/%%/%%T%%:%%
str.replace(%%/%%/%%T%%:%%, 'dummy value')
编辑: 对不起,我应该更清楚一点。 re.sub似乎我可以使用它,但它如何用日期转换值替换它。在这种情况下,例如 YY / MM / DDTHH:MM到(YY / MM / DD HH:MM)+8小时
答案 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"
语法来定义源格式,这种格式不是很干;如果他们不匹配,你将无处可去。