re.sub question (regular expressions)

2009-10-16 Thread Chris Seberino
What does this line do?...

input_ = re.sub(([a-zA-Z]+), '\\1', input_)

Does it remove parentheses from words?
e.g. (foo) - foo ???

I'd like to replace [a-zA-Z] with \w but \w makes it blow up.

In other words, re.sub((\w+), '\\1', input_) blows up.

Why?

cs
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: re.sub question (regular expressions)

2009-10-16 Thread Jean-Michel Pichavant

Chris Seberino wrote:

What does this line do?...

input_ = re.sub(([a-zA-Z]+), '\\1', input_)

Does it remove parentheses from words?
e.g. (foo) - foo ???

I'd like to replace [a-zA-Z] with \w but \w makes it blow up.

In other words, re.sub((\w+), '\\1', input_) blows up.

Why?

cs
  

( has a special meaning of not preceded by \ (see re help)

the first line transform 'foo' into 'foo'
your solution is doing the same.

If I'm wrong, MRAB will come into rescue anyway :o)

JM
--
http://mail.python.org/mailman/listinfo/python-list


Re: re.sub question (regular expressions)

2009-10-16 Thread MRAB

Chris Seberino wrote:

What does this line do?...

input_ = re.sub(([a-zA-Z]+), '\\1', input_)


Why don't you try it?


Does it remove parentheses from words?
e.g. (foo) - foo ???


No, it puts quotes around them.


I'd like to replace [a-zA-Z] with \w but \w makes it blow up.

In other words, re.sub((\w+), '\\1', input_) blows up.

Why?


What do you mean blow up? It worked for me in Python v2.6.2.
--
http://mail.python.org/mailman/listinfo/python-list