regex help

S.Selvam s.selvamsiva at gmail.com
Fri Dec 18 01:40:07 EST 2009


On Wed, Dec 16, 2009 at 10:46 PM, Gabriel Rossetti <
gabriel.rossetti at arimaz.com> wrote:

> Hello everyone,
>
> I'm going nuts with some regex, could someone please show me what I'm doing
> wrong?
>
> I have an XMPP msg :
>
> <message xmlns='jabber:client' to='node at host.com'>
>   <mynode xmlns='myprotocol:core' version='1.0' type='mytype'>
>       <parameters>
>           <param1>123</param1>
>           <param2>456</param2>
>       </parameters>
>       <payload type='plain'>...</payload>
>   </mynode>
>   <x xmlns='jabber:x:expire' seconds='15'/>
> </message>
>
> the <parameter> node may be absent or empty (<parameter/>), the <x> node
> may be absent. I'd like to grab everything exept the <payload> nod and
> create something new using regex, with the XMPP message example above I'd
> get this :
>
> <message xmlns='jabber:client' to='node at host.com'>
>   <mynode xmlns='myprotocol:core' version='1.0' type='mytype'>
>       <parameters>
>           <param1>123</param1>
>           <param2>456</param2>
>       </parameters>
>   </mynode>
>   <x xmlns='jabber:x:expire' seconds='15'/>
> </message>
>
> for some reason my regex doesn't work correctly :
>
> r"(<message .*?>).*?(<mynode
> .*?>).*?(?:(<parameters>.*?</parameters>)|<parameters/>)?.*?(<x .*/>)?"
>
>
If all you need is to remove payload node ,this could be useful,

s1="<message xmlns='jabber:client' to='node at host.com'><mynode
xmlns='myprotocol:core' version='1.0'
type='mytype'><parameters><param1>123</param1><param2>456</param2></parameters><payload
type='plain'>...</payload></mynode><x xmlns='jabber:x:expire'
seconds='15'/></message>"

pat=re.compile(r"<payload.*<\/payload>")
s1=pat.sub("",s1)


-- 
Regards,
S.Selvam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20091218/6cca2da3/attachment-0001.html>


More information about the Python-list mailing list