FW: Way to do RegEx substring replacements? Solution (looks good)

Jim Ault JimAultWins at yahoo.com
Sun Mar 5 18:28:35 EST 2006


Done off list, but I thought this might be helpful to someone out there.
Jim Ault

------ Forwarded Message
From: Jim Ault <JimAultWins at yahoo.com>
Date: Sun, 05 Mar 2006 14:56:21 -0800
To: Jim Witte <jswitte at bloomington.in.us>
Conversation: Way to do RegEx substring replacements?
Subject: Re: Way to do RegEx substring replacements?

On 3/5/06 1:06 PM, "Jim Witte" <jswitte at bloomington.in.us> wrote:

> 
> The blocks that I have are lines of assembly in the form of
> 0025FE2F mov r1, [r2, lsl #2]   | FE32FDB - ..D.
> 
> I want to get rid of everything after the last bit of the assembly
> code, and isolate the address of the line.  In TextWrangler, I could
> use a RegEx/replace similar to the I listed above to get rid of the
> 'end part' after the '|' character, and then use a search for \s*\r
> and replace with \r to get rid of the trailing spaces.  I've got
> everything working now in RunRev, except getting rid of the trailing
> spaces, while I'll do in TextWrangler.
Hey, Jim (nice name)

Test my solution quickly by doing two things:

Make a new mainstack, then set the script to the following => dbl click

----- start copy -------------------------
on mouseDoubleUp
  put "0025FE2F mov r1, [r2, lsl #2]            | FE32FDB - ..D" into tempp
  put the ticks into startt
  put 5000 into lineCnt
  repeat lineCnt
    put tempp & cr after block
  end repeat
  put the ticks - startt into elapsed
  answer "Done building " &lineCnt & " lines  " && elapsed && "ticks"
  
  put the ticks into startt
  
  get replaceText( block,"\|","MMMM")
  get replaceText(it,"].*MMMM .*","]")
  put the ticks - startt into elapsed

  put it -- result is in the msg box

  answer "Done replace 2x in " &lineCnt & " lines  " && elapsed && "ticks"

--my answer = 44 ticks
end mouseDoubleUp

-------- end copy -----------------

My result on a Mac G5 dual 2.0 was 0 ticks to create 5000 lines, and 44
ticks to do the replaceText.

All I was able to figure out is that something about the line of text
confuses the RegEx routine so that selection of the correct text is
thwarted.  The double replace

Hope this works for you.
Of course, you could use anything in place of the "MMMM" string to remain
unique.  It is just a place holder.

Jim Ault
Las Vegas

------ End of Forwarded Message





More information about the use-livecode mailing list