python:如何用正则表达式生成代码?

2024-09-25 18:25:28 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我输入"1995y 05m 05d",那么我想制作一个打印"950505"的程序。更多示例:"1949y 05m 23d"-->;"490523"。你知道吗

import re
Birthday = str(input("insert your birth<(ex) xxxxy **m 00d> : "))
p= re.sub('[ymd ]','',Birthday)
print(p) #result is "xxxx**00"

这是我的密码。我该怎么修?有什么解决办法吗?你知道吗


Tags: importgt程序re示例inputyourex
3条回答

由于您基本上使用的是日期字符串,因此可以使用^{}来解析它们:

>>> from datetime import datetime
>>> birthday = '1995y 05m 05d'
>>> datetime.strptime(birthday, '%Yy %mm %dd').strftime('%y%m%d')
'950505'

现有代码打印全年,只需要两位数。只需跳过打印的前两个数字。你知道吗

print(p[2:])

它将打印从位置2开始的p(第三个字符,因为列表从0开始计数),没有范围的结尾,因此它打印除前两个字符外的整个字符串(示例中的19)。你知道吗

使用正则表达式:

>>> import re
>>> a = re.findall("\d+","1995y 05m 05d")
>>> a[0] = a[0][2:]
>>> output = ""
>>> for item in a:
    output += item

>>> int(output)
950505
>>> 

相关问题 更多 >