1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
/*
* SPL - The SPL Programming Language
* Copyright (C) 2004, 2005 Clifford Wolf <clifford@clifford.at>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* example56.spl: example for e// regexes and the 'E' regex modifier.
*/
// SKIP_IF_NO_REGEX
var text = <:>
:This is an example for e// regexes and the 'E' regex modifier.
:Some ASCII Codes: A = #A, B = #B, C = #C, D = #D
</>;
var counter = 0;
var list = text =~ /#(.)/AINEg;
if (list) {
var newtext = $-;
foreach[] $$ (list)
newtext ~= "${ord($1)} (${++counter})" ~ $+;
write(newtext);
}
write("---\n");
write(text =~ e/#(.)/Rg "${ord($1)} (${++counter})");
write("---\n");
text =~ e/#(.)/g "${ord($1)} (${++counter})";
write(text);
write("---\n");
text = "123 #AA# 456 #XX# 789";
debug text =~ e/@(.).@/Rg "<${ord($1)}>";
debug text =~ e/#(.).#/Rg "<${ord($1)}>";
debug text =~ e/@(.).@/g "<${ord($1)}>";
debug text;
debug text =~ e/#(.).#/g "<${ord($1)}>";
debug text;
|