2016-05-12 2 views

ответ

7

С небольшими ухищрениями в вышеупомянутом посте, вы можете заставить его работать.

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 
1

чуть более надежное регулярное выражение: .*?\b(\d{2})\.(\d{2})\.(\d{4})\b

(пп/пп/нннны формат с границами слов)

заменить строку: \3\2\1

demo

1

Здесь является одним из способов, используя re.sub():

import re 

s = "Campaign on 01.11.2015" 

new_s = re.sub(r"Campaign on (\d+)\.(\d+)\.(\d+)", r'\3\2\1', 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 
0

Позволяет сойти с ума: D

 "".join(reversed(a.split()[-1].split("."))) 
0

С магией списка.

In [15]: ''.join(a.split()[-1].split('.')[::-1]) 
Out[15]: '20151101' 
Смежные вопросы