Inserting '-' character in front of all numbers in a string

Paul McGuire ptmcg at austin.rr.com
Fri Mar 30 17:41:57 EDT 2007


On Mar 30, 2:09 pm, Michael Bentley <mich... at jedimindworks.com> wrote:
> On Mar 30, 2007, at 10:38 AM, kevinliu23 wrote:
>
>
>
>
>
> > I want to be able to insert a '-' character in front of all numeric
> > values in a string. I want to insert the '-' character to use in
> > conjunction with the getopt.getopt() function.
>
> > Rigt now, I'm implementing a menu system where users will be able to
> > select a set of options like "2a 3ab" which corresponds to menu
> > choices. However, with getopt.getopt(), it'll only return what I want
> > if I input -2a -3ab as my string. I don't want the user have to insert
> > a '-' character in front of all their choices, so I was thinking of
> > accepting the string input first, then adding in the '-' character
> > myself.
>
> > So my qusetion is, how do I change:
>
> > "2a 3ab" into "-2a -3ab".
>
> Will the first character always be a digit?
>
> for i in yourstring.split():
>         if i[0].isdigit():
>                 yourstring = yourstring.replace(i, '-%s' % (i,))
>
> Or are these hex numbers?- Hide quoted text -
>
> - Show quoted text -

Your replace strategy is risky.  If:

yourstring = "1ab 2bc 3de 11ab"

it will convert to

-1ab -2bc -3de 1-1ab

-- Paul





More information about the Python-list mailing list