help on python regular expression named group

MRAB python at mrabarnett.plus.com
Tue Jul 16 11:38:14 EDT 2013


On 16/07/2013 11:18, Mohan L wrote:
>
>
>
> On Tue, Jul 16, 2013 at 2:12 PM, Joshua Landau <joshua at landau.ws
> <mailto:joshua at landau.ws>> wrote:
>
>     On 16 July 2013 07:55, Mohan L <l.mohanphy at gmail.com
>     <mailto:l.mohanphy at gmail.com>> wrote:
>      >
>      > Dear All,
>      >
>      > Here is my script :
>      >
>      > #!/usr/bin/python
>      > import re
>      >
>      > # A string.
>      > logs = "date=2012-11-28 time=21:14:59"
>      >
>      > # Match with named groups.
>      > m =
>      >
>     re.match("(?P<datetime>(date=(?P<date>[^\s]+))\s+(time=(?P<time>[^\s]+)))",
>      > logs)
>      >
>      > # print
>      > print m.groupdict()
>      >
>      > Output:
>      > ========
>      >
>      > {'date': '2012-11-28', 'datetime': 'date=2012-11-28
>     time=21:14:59', 'time':
>      > '21:14:59'}
>      >
>      >
>      > Required output :
>      > ==================
>      >
>      > {'date': '2012-11-28', 'datetime': '2012-11-28 21:14:59', 'time':
>      > '21:14:59'}
>      >
>      > need help to correct the below regex
>      >
>      > (?P<datetime>(date=(?P<date>[^\s]+))\s+(time=(?P<time>[^\s]+)))"
>      >
>      > so that It will have : 'datetime': '2012-11-28 21:14:59' instead of
>      > 'datetime': 'date=2012-11-28 time=21:14:59'
>      >
>      > any help would be greatly appreciated
>
>     Why do you need to do this in a single Regex? Can't you just "
>     ".join(..) the date and time?
>
>
> I using another third party python script. It takes the regex from
> configuration file. I can't write any code. I have to do all this in
> single regex.
>
A capture group captures a single substring.

What you're asking is for it to with capture 2 substrings (the date and
the time) and then join them together, or capture 1 substring and then
remove part of it.

I don't know of _any_ regex implementation that lets you do that.




More information about the Python-list mailing list