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