Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Replace every n instances of a string

Reply
Thread Tools

Replace every n instances of a string

 
 
Tom Cross
Guest
Posts: n/a
 
      08-15-2003
Hello-

I have a function that returns to me a text representation of Unicode
data, which looks like this:

\u0013\u0021\u003c\u003f\u0044\u001f\u006a\u005a\u 0050\u0015\u0018\u001d\u007e\u006b\u004e\u007d\u00 6a\u006e\u0068\u0042\u0026\u003c\u004f\u0059\u0056 \u002b\u001a\u0077\u0065\u006a\u000a\u0021\u005f\u 0025\u003f\u0025\u0024\u007e\u0020\u0011\u0060\u00 2c\u0037\u0067\u007a\u0074\u0074\u0003\u0003\u000f \u0039\u0018\u0059\u0038\u0029\u0001\u0073\u0034\u 0009\u0069\u005e\u0003\u006e\u000d\u004c\u001d\u00
f\u006e\u001b\u006e\u0063\u000b\u0014\u0071\u007c\ u004e\u006a\u0011\u004a\u001f\u0063\u0016\u003d\u0 020\u0065\u003e\u0043\u0012\u0047\u0026\u0062\u000 4\u0025\u003b\u0005\u004c\u002e\u005a\u0070\u0048

I would like to add carriage returns to this for usability. But I
don't want to add a return after each "\u" I encounter in the text
(regexp comes to mind if I did). I want to add a return after each 12
"\\u"s I encounter in the string.

Any ideas? Do I not want to search for "\\u" but instead just insert
a \n after each 72 characters (equivalent to 12 \uXXXX codes)? Would
this provide better performance? If so, what would be the easiest way
to do that?

Thanks much!
 
Reply With Quote
 
 
 
 
Terry Reedy
Guest
Posts: n/a
 
      08-15-2003

"Tom Cross" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) om...
> I have a function that returns to me a text representation of

Unicode
> data, which looks like this:

....
> I would like to add carriage returns...after each 12
> "\\u"s I encounter in the string.
>
> Any ideas? Do I not want to search for "\\u" but instead just

insert
> a \n after each 72 characters (equivalent to 12 \uXXXX codes)?

Would
> this provide better performance? If so, what would be the easiest

way
> to do that?


Split string into list of 6*n (72) char chunks and join with \n:

#unirep = textrep(unidata) #ie, call your func and store result. for
illustration...
unirep =
r'\u0013\u0021\u003c\u003f\u0044\u001f\u006a\u005a \u0050\u0015\u0018'

blocklen = 6*4 #instead of 6*12 to get multiple lines with short
unirep
unilist = []
for i in range(0, len(unirep), blocklen):
unilist.append(unirep[i:i+blocklen])

unilines = '\n'.join(unilist)
>>> print unilines

\u0013\u0021\u003c\u003f
\u0044\u001f\u006a\u005a
\u0050\u0015\u0018

Consider whether you want to change r'\n' to something else like
spaces for easier viewing. If so, do so on unirep before chop into
blocks and adjust blocklen if replacement is not two chars.

Terry J. Reedy




Terry J. Reedy


 
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
dicts,instances,containers, slotted instances, et cetera. ocschwar@gmail.com Python 8 01-29-2009 09:52 AM
Replace /n with a XHTML <br /> using string.replace Alun ASP .Net 3 02-18-2008 05:52 AM
how to make replace function replace globally in a string V S Rawat Javascript 5 07-03-2007 08:02 PM
help with string replace - for doing selective replace Prasad S Javascript 2 08-27-2004 03:22 PM
list of class instances within a list of a class instances John Wohlbier Python 2 02-22-2004 08:41 AM



Advertisments