Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 1.05 KB | None | 0 0
  1. 1;
  2.  
  3. function str = erase (str, match)
  4.  
  5.   # do wee need to convert to cellstring?
  6.   mtocs = ischar (str) && rows (str) > 1;
  7.   if (mtocs)
  8.     str = cellstr (str);
  9.   endif
  10.  
  11.   if (iscellstr (match))
  12.     # recursive call
  13.     if (numel (match) > 1)
  14.       str = erase (str, match(1:end-1));
  15.     else
  16.       str = erase (str, match{1});
  17.     endif
  18.   else
  19.     str = strrep (str, match, "", "overlaps", false);
  20.   endif
  21.  
  22.   # convert cellstring to char matrix
  23.   if (mtocs)
  24.     str = char (str);
  25.   endif
  26.  
  27. endfunction
  28.  
  29.  
  30. # from https://savannah.gnu.org/bugs/?52647#comment5
  31. assert (erase ('aba', 'aba'), char ([]));
  32. assert (erase ('ababa', 'aba'), 'ba');
  33. assert (erase ('abababa', 'aba'), 'b');
  34. assert (erase ('ababababa', 'aba'), 'bba')
  35. assert (erase ('ababababa', {'aba', 'bba'}), 'bba');
  36. assert (erase (' ababababa ', {'aba', 'bba'}), ' bba ');
  37. assert (erase (' ababa ', {'aba', 'baba'}), ' ba ');
  38.    
  39. str = ["the quick brown fox jumps"; "over the lazy dog"];
  40. newStr = erase (str, "the ");
  41. assert (newStr, ["quick brown fox jumps"; "over lazy dog"])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement