2

How can I extract "20151101" (as string) from "Campaign on 01.11.2015"?

I have read this one: Extracting date from a string in Python . But I am getting stuck when converting from Match object to string.

5 Answers 5

9

With minor tweaks in the aforementioned post, you can get it to work.

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
Sign up to request clarification or add additional context in comments.

Comments

1

Here is one way, using 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

And another, using 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

Comments

1

a slightly more robust regex: .*?\b(\d{2})\.(\d{2})\.(\d{4})\b

(nn/nn/nnnn format with word boundaries)

replace string:\3\2\1

demo

Comments

1

With magic of list.

In [15]: ''.join(a.split()[-1].split('.')[::-1])
Out[15]: '20151101'

Comments

0

Lets get crazy : D

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.