Search and Replace

Dan Friedman dan at clearvisiontech.com
Tue Oct 15 23:03:00 CDT 2002


Ken,

Both of these items are correct.  But still doesn't exit the repeat.  Here's
what I have:

function replaceGender whatText
  local tStart,tEnd
  
  put "he,him,himself,his,he's,boy,guy" into SearchWordsMale
  put "she,her,herself,her,she's,girl,gal" into SearchWordsFemale
  set the wholeMatches to true
  repeat forever
    get 
matchChunk(whatText,"[^A-Za-z0-9](boy|h(e|im|is|imself|e's)|guy)[^A-Za-z0-9]
",tStart,tEnd)
    if it is true then
      put char tStart to tEnd of tText into tFoundChunk
      put (charToNum(toUpper(char 1 of tFoundChunk)) = charToNum(char 1 of
tFoundChunk)) into isUpper
      put itemOffset(tFoundChunk,SearchWordsMale) into tItem
      if tItem <> 0 then
        put item tItem of SearchWordsFemale into temp
        if isUpper then put toUpper(char 1 of temp) into char 1 of temp
        put temp into char tStart to tEnd of whatText
      else
        -- you decide... bail? error out? ignore?
      end if
    else
      exit repeat
    end if
  end repeat
  return whatText
end replaceGender



> Dan,
> 
> Two things to check:
> 
> 1) Check the script to make sure the "local tStart,tEnd" is in there; if it
> isn't, Rev won't actually put anything in tStart or tEnd since they weren't
> "localed".
> 
> 2) Check to make sure in the matchchunk it says:
> 
>   (boy|h(e|im|is|imself|e's)|guy)
> 
> between the two [^A-Za-z0-9] and not:
> 
>   boy|h(e|im|is|imself|e's)|guy
> 
> ... without the parentheses around it, there will be nothing to return as a
> match.
> 
> Let me know if it still doesn't work...
> 
> Don't worry about not getting matchChunk and matchText... I've got a
> mini-tutorial in the works on regEx in Rev/MC that I hope to have released
> as soon as I get another chunk of time to complete it... ;-)
> 
> Ken Ray
> Sons of Thunder Software
> Email: kray at sonsothunder.com
> Web Site: http://www.sonsothunder.com/




More information about the use-livecode mailing list