ossiejhmoore

OScript Regular Expression ReplaceAll

Aug 17th, 2012
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. function Assoc ReplaceAll(String input, String patturn, String replace)
  2.  
  3. Assoc retVal
  4. retVal.ok = false
  5. retVal.ErrMsg = Undefined
  6. retVal.ApiError = Undefined
  7. retVal.Input = input
  8. retVal.Pattern = patturn
  9. retVal.Replace = replace
  10. retVal.Output = Undefined
  11.  
  12. String output = Undefined
  13. PatFind finder
  14.  
  15. List result
  16. Integer start
  17. Integer stop
  18. String match
  19.  
  20. if ( (IsDefined(input)) && (Length(input)>0) )
  21. finder = Pattern.CompileFind( patturn )
  22. if (IsError(finder))
  23. retVal.ErrMsg = Str.Format("%1", finder)
  24. retVal.ApiError = finder
  25. else
  26. output = ""
  27. result = Pattern.find(input, finder)
  28. if (IsDefined(result))
  29. while(IsDefined(result))
  30. start = result[1]
  31. stop = result[2]
  32. match = result[3]
  33. if (start >1)
  34. output += input[:start-1]
  35. end
  36. output += replace
  37. input = input[stop+1:]
  38. result = Pattern.find(input, finder)
  39. if (IsUndefined(result))
  40. output += input
  41. end
  42. end
  43. retVal.ok = true
  44. retVal.Output = output
  45. else
  46. retVal.ok = true
  47. retVal.Output = input
  48. end
  49. end
  50. else
  51. retVal.ok = true
  52. retVal.Output = input
  53. end
  54.  
  55.  
  56. if (!retVal.ok)
  57. if (IsUndefined(retVal.ErrMsg))
  58. retVal.ErrMsg = "Unknown error while trying to execute ReplaceAll."
  59. end
  60. end
  61.  
  62. return retVal
  63.  
  64. end
Add Comment
Please, Sign In to add comment