从 python 中的字符串中提取日期
Extract date from string in python
如何从 "Campaign on 01.11.2015" 中提取“20151101”(作为字符串)?
我读过这一篇:
Extracting date from a string in Python
.但是我在从 Match 对象转换为字符串时遇到了问题。
稍微更健壮的正则表达式:.*?\b(\d{2})\.(\d{2})\.(\d{4})\b
(nn/nn/nnnn 带字边界的格式)
替换字符串:
这是一种方法,使用 re.sub()
:
import re
s = "Campaign on 01.11.2015"
new_s = re.sub(r"Campaign on (\d+)\.(\d+)\.(\d+)", r'', s)
print new_s
还有一个,使用 re.match()
:
import re
s = "Campaign on 01.11.2015"
match = re.match(r"Campaign on (\d+)\.(\d+)\.(\d+)", s)
new_s = match.group(3)+match.group(2)+match.group(1)
print new_s
让我们疯狂吧:D
"".join(reversed(a.split()[-1].split(".")))
在上述 post 中稍作调整,即可正常运行。
import re
from datetime import datetime
text = "Campaign on 01.11.2015"
match = re.search(r'\d{2}.\d{2}.\d{4}', text)
date = datetime.strptime(match.group(), '%d.%m.%Y').date()
print str(date).replace("-", "")
20151101
列表的魔法
In [15]: ''.join(a.split()[-1].split('.')[::-1])
Out[15]: '20151101'
如何从 "Campaign on 01.11.2015" 中提取“20151101”(作为字符串)?
我读过这一篇: Extracting date from a string in Python .但是我在从 Match 对象转换为字符串时遇到了问题。
稍微更健壮的正则表达式:.*?\b(\d{2})\.(\d{2})\.(\d{4})\b
(nn/nn/nnnn 带字边界的格式)
替换字符串:
这是一种方法,使用 re.sub()
:
import re
s = "Campaign on 01.11.2015"
new_s = re.sub(r"Campaign on (\d+)\.(\d+)\.(\d+)", r'', s)
print new_s
还有一个,使用 re.match()
:
import re
s = "Campaign on 01.11.2015"
match = re.match(r"Campaign on (\d+)\.(\d+)\.(\d+)", s)
new_s = match.group(3)+match.group(2)+match.group(1)
print new_s
让我们疯狂吧:D
"".join(reversed(a.split()[-1].split(".")))
在上述 post 中稍作调整,即可正常运行。
import re
from datetime import datetime
text = "Campaign on 01.11.2015"
match = re.search(r'\d{2}.\d{2}.\d{4}', text)
date = datetime.strptime(match.group(), '%d.%m.%Y').date()
print str(date).replace("-", "")
20151101
列表的魔法
In [15]: ''.join(a.split()[-1].split('.')[::-1])
Out[15]: '20151101'