Hallo Peter,
das ist schon mal ganz dicht dran!
Allerdings habe ich in meinem String ausschließlich einzelne Hochkommata,
wenn ich also das hier --> str = "select xyz from table1 where col1 like "c%" and col2 like 'd%'";
in das hier --> str = "select xyz from table1 where col1 like 'c%' and col2 like 'd%'"; ändere, bekomme ich das -->
select xyz from table1 where col1 like LOWER('c%' and col2 like 'd%')
Hast Du da noch einmal einen Tip?
Vielen Dank schonmal für die Mühe, die Du Dir gemacht hast!
Gruss,
BSF
gruss BSF,
/*
gesucht werden sollen also alle durch einfache bzw. durch doppelte
hochkommata eingefassten zeichensequenzen:
['"] - matched genau ein zeichen, welches entweder ein einfaches
oder ein doppeltes hochkomma ist.
2)
[^'"]* - matched genau keins, eins oder mehrere zeichen, die weder
einfache noch doppelte hochkommata sind.
3)
(['"]) - wie (1), nur das dieses zeichen auf einem internen ueber
»1« zu adressierenden speicher abgelegt wird.
4)
[^\1]* - wie (2), nur das hier schon mit der internen gerade unter
(3) genannten referenz auf deas erste gematchte zeichen gearbeitet
wird.
5)
([^\1]*) wie (4), nur das der ganze kram jetzt ebenfalls gespeichert
wird - diesmal unter der internen referenz »2«.
6)
\1 wie unter (1), nur das hier ebenfalls wieder mit der internen
referenz, wie auch gerade unter (4) beschrieben, gearbeitet wird.arbeitsprobe - bitte copy and paste unter [link:http://jconsole.com@title=jconsole.com]:
*/var str, regX;
str = "select xyz from table1 where col1 like 'a%' and col2 like "b%"";
regX = (/(['"])([^\1]*)\1/g);print(regX.test(str));
print(str.replace(regX, "LOWER($1$2$1)"));str = "select xyz from table1 where col1 like "c%" and col2 like 'd%'";
regX = (/(['"])([^\1]*)\1/g);print(regX.test(str));
print(str.replace(regX, (function () {
return ("LOWER(" + arguments[1] + arguments[2] + arguments[1] + ")");
})));
>
>
> so long - peterS. - pseliger@gmx.net
>
>