Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: find and remove "\" character from string

Reply
Thread Tools

Re: find and remove "\" character from string

 
 
Steve Holden
Guest
Posts: n/a
 
      09-15-2007
Konstantinos Pachopoulos wrote:
> Hi,
> i have the following string s and the following code, which doesn't
> successfully remove the "\", but sucessfully removes the "\\".
>
> >>> s="Sad\\asd\asd"
> >>> newS=""
> >>> for i in s:

> ... if i!="\\":
> ... newS=newS+i
> ...
> >>> newS

> 'Sadasd\x07sd'
>

In actual fact there was just a single backslash in s to start with. If
you read the documentation carefully at

http://docs.python.org/ref/strings.html

(though it's the language reference manual, and therefore not
necessarily suitable reading for beginners) you will see that the "\\"
represents a single backslash character and \a represents an ASCII BEL
character (whose decimal value is 7, and which the interpreter
represents as the hexadecimal escape string \x07).

So the characters in s were S a d \ a s d \x07 s d and you shoudl have
seen len(s) == 10.

As has already been mentioned, the shortest way to do what you want would be

newS = s.replace("\\", "")

> I have also read the following, but i do not understand the "...and the
> remaining characters have been mapped through the given translation
> table, which must be a string of length 256". Can some explain?
>
> *translate*( table[, deletechars])
>
> Return a copy of the string where all characters occurring in the
> optional argument deletechars are removed, and the remaining
> characters have been mapped through the given translation table,
> which must be a string of length 256.
>
> For Unicode objects, the translate() method does not accept the
> optional deletechars argument. Instead, it returns a copy of the s
> where all characters have been mapped through the given translation
> table which must be a mapping of Unicode ordinals to Unicode
> ordinals, Unicode strings or |None|. Unmapped characters are left
> untouched. Characters mapped to |None| are deleted. Note, a more
> flexible approach is to create a custom character mapping codec
> using the codecs <http://docs.python.org/lib/module-codecs.html>
> module (see encodings.cp1251 for an example).
>

The translate() string method uses the numeric represetation of each
character as an index into the translation table. So a null translation
table can be constructed using

>>> t = "".join(chr(i) for i in range(256))
>>> t

'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\ r\x0e\x0f\x10\x11\x12\x13\x14\
x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f
!"#$%&\'()*+,-./0123456789:;<=>?@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\ x83
\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x 90\x91\x92\x93\x94\x95\x96\x97
\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\x a4\xa5\xa6\xa7\xa8\xa9\xaa\xab
\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\x b8\xb9\xba\xbb\xbc\xbd\xbe\xbf
\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\x cc\xcd\xce\xcf\xd0\xd1\xd2\xd3
\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\x e0\xe1\xe2\xe3\xe4\xe5\xe6\xe7
\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\x f4\xf5\xf6\xf7\xf8\xf9\xfa\xfb
\xfc\xfd\xfe\xff'
>>>


(the above output will look a little screwy in the mail because of odd
line wrapping).

So hopefully you could then achieve the same effect (at vastly greater
complexity than the first solution) using

>>> s="Sad\\asd\asd"
>>> len(s)

10
>>> newS = s.translate(t, "\\")
>>> newS

'Sadasd\x07sd'
>>>


You would probably only want to use that method if you were actually
translating some of the characters at the same time.

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden

Sorry, the dog ate my .sigline

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Convert string with control character in caret notation to realcontrol character string. Bart Vandewoestyne C Programming 8 09-25-2012 12:41 PM
find and remove "\" character from string Konstantinos Pachopoulos Python 2 09-15-2007 08:33 PM
remove the last character or the newline character? Daniel Mark Python 6 09-28-2006 02:40 PM
8 bit character string to 16 bit character string Brand Bogard C Programming 8 05-28-2006 05:05 PM
getting the character code of a character in a string Velvet ASP .Net 9 01-19-2006 09:27 PM



Advertisments