python - How to remove everything (except certain characters) after the last number in a string -


this follow-up of this question.

there learned how remove characters after last number in string; can turn

w = 'w123 o456 t789-- --' 

into

w123 o456 t789 

now might have strings this:

w = 'w123 o456 (t789)' 

in case,

re.sub(r'\d+$', '', w) 

would give me

w123 o456 (t789 

so have 2 closely related questions:

1) how can modify command re.sub(r'\d+$', '', w) in way characters kept (e.g. parenthesis)?

2) how can modify command re.sub(r'\d+$', '', w) characters removed (e.g. dashes , white spaces)?

edit

@martin bonner's answer gets close e.g.

w='w123 -o456 t789--) --' 

the command

 re.sub('[- ]+$', '', w) 

gives me w123 -o456 t789--) should rid of remaining dashes.

you may use re.sub in callback replacement pattern.

re.sub(r'\d+$', lambda m: re.sub(r'[^()]+','',m.group(0)), s) 

here, match symbols other digits @ end of string, pass value callback, , symbols other ( , ) removed value.


Comments

Popular posts from this blog

unity3d - Rotate an object to face an opposite direction -

angular - Is it possible to get native element for formControl? -

javascript - Why jQuery Select box change event is now working? -