General examples


(1)  Have strings like  ABCD  and want  DCBA.  Assume words are case-insensitive.

CHANGE P'@@@@' WORD M'4-1'


(1.1)  The same example, using a RegEx with "quantifier" notation for the number of letters:

CHANGE R'[A-Z]{4}' WORD M'4-1'



(2)  Have strings like ABCD and want  DCBA.  Assume words are upper-case only.

CHANGE P'>>>>' WORD M'4-1'



(3)  Have strings like  ABCD  and want  ** AB-CD **

CHANGE P'>>>>' WORD M'`** ` 1-2 `-` 3-4 ` **`'

or

CHANGE P'>>>>' WORD M'1-2 `-` 3-4 P P`*`2'



(4)  Have  AB1234  and want  XY4321

CHANGE P'AB####' M"`XY` 6-3"



(5)  Have  XX1234  and want  XX4321  where  XX  are any existing characters

CHANGE P'==####' M"1-2 6-3"



(6)  Have  XX1234  and want  xx4321  where XX, xx are upper and lower case

CHANGE P'>>####' M"< 1-2 <> 6-3"



(7)  Have  AB1234  and want  A123

CHANGE P'AB####' M"1 3-5"



(8)  Have  AB1234  and want  123ABC

CHANGE P'AB####' M"3-5 1-2 `C`"



(9)  Have  AB1234  and want  BB234

CHANGE P'AB####' M"2 2 4-6"



(10)  Have strings like  AB*12/34  and want  AB1234*/  where * and / are some delimiters; we use 0 to “grab” all the column positions not otherwise specified and put them at the end, which are columns 3 and 6 in this example:

CHANGE P'@@=##=##' M"1-2 4-5 7-8 0"



(11)  Have ‘words’ of varying sizes; want to reverse first 3 characters and make upper case, then copy the rest of the string as-is.  Example:  abc12XyZ    CBA12XyZ

CHANGE R'[a-zA-Z]+' WORD M"> 3-1 <> 4+"



(12)  Have ‘words’ of varying sizes; want to reverse first 3 characters and make upper case, then copy the rest of the string in reverse order in lower case.  Example:  abc12xyz    CBAzyx21

CHANGE R'[a-zA-Z]+' WORD M"> 3-1 < \4+"



Example of mapping ‘short’ data


Have ‘words’ of varying sizes; want to reverse first 5 characters, and drop any characters after position 5.

CHANGE R'[a-zA-Z]+' WORD M"5-1"


What happens here if the word found is shorter than 5 characters?  Suppose the string found is  ABC.  For mapping purposes, the string is treated in effect as if it were extended to the right with “null” characters, like this:

ABC●●


Then, the string order is reversed, like this:

●●CBA


Finally, the “null” characters are removed, and the result is CBA.


Note:  The explanation above is just to help you understand.  In reality, no “null” characters are actually used, so you can use mapping strings to reorder any data, even data having binary zeros.  The character reversal process just goes from position 5 to position 1 as requested, but when positions 5 and 4 are asked for, it is found that there is no data in those positions and the copying action is simply ignored.  So, internally, the command gets treated for this particular string as if you had specified this:


CHANGE R'[a-zA-Z]+' WORD M"3-1"



Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator