diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-08-30 13:18:50 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-08-30 23:00:29 +0300 |
commit | 32df5529f791760161a027a1a7408bc92976a3cd (patch) | |
tree | 170064adddd321c080d89a0bf85255db6d644f7f /tests | |
parent | 909bbc79fd2dc1d3a36e3109ba32a22e162b2b7f (diff) |
Add $regex.split(), $regex.merge() and $regex.apply() functions
Diffstat (limited to 'tests')
-rw-r--r-- | tests/function/regex/testscript | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/function/regex/testscript b/tests/function/regex/testscript index deeefa5..6cce873 100644 --- a/tests/function/regex/testscript +++ b/tests/function/regex/testscript @@ -253,3 +253,99 @@ } } } + +: split +: +{ + : all-parts + : + : Note that 3 parts a printed here ('|abc|', ' ' and '|def|'), separated by + : the space character. + : + $* <<EOI >'|abc| |def|' + print $regex.split('abc def', '(\S+)', '|\1|') + EOI + + : no-copy + : + : Note that 2 parts a printed here ('|abc|' and '|def|'), separated by the + : space character. + : + $* <<EOI >'|abc| |def|' + print $regex.split('abc def', '(\S+)', '|\1|', format_no_copy) + EOI + + : unmatched + : + : Note that only unmatched part is printed here (' '). Empty replacements are + : omitted. + : + $* <<EOI >' ' + print $regex.split('abc def', '(\S+)', '') + EOI + + : include-options + : + { + : quoted + : + $* <<EOI >'|-Ic:/dir 1| |-IC:/dir2| |-IC:/dir3| |-IC:/dir4| ||' + opts = '"-Ic:/dir 1" "-IC:/dir2" "-IC:/dir3" "-IC:/dir4" ""' + print $regex.split($opts, ' *"([^"]*)" *', '|\1|') + EOI + + : quoted-unquoted + : + : Note that one of the two captures (\1\2) is always empty as they are + : alternative ones. + : + $* <<EOI >'|-Ic:/dir 1| |-IC:/dir2| |-IC:/dir3| |-IC:/dir4| ||' + opts = '"-Ic:/dir 1" -IC:/dir2 "-IC:/dir3" "-IC:/dir4" ""' + print $regex.split($opts, '"([^"]*)"|([^" ]+)', '|\1\2|', format_no_copy) + EOI + } +} + +: apply +: +{ + : all-parts + : + $* <<EOI >'xbc cbx' + print $regex.apply(abc cba, 'a', 'x') + EOI + + : omit-empty + : + $* <<EOI >'bc cb' + print $regex.apply(abc a cba, 'a', '') + EOI +} + +: merge +: +{ + : all-parts + : + $* <<EOI >'xbccbx' + print $regex.merge(abc cba, 'a', 'x') + EOI + + : omit-empty + : + $* <<EOI >'bccb' + print $regex.merge(abc a cba, 'a', '') + EOI + + : delim + : + $* <<EOI >'xbc-cbx' + print $regex.merge(abc cba, 'a', 'x', '-') + EOI + + : string-delim + : + $* <<EOI >'xbc-cbx' + print $regex.merge(abc cba, 'a', 'x', [string] '-') + EOI +} |