-
RegEx Suchstring
Moin community,
es geht um meine Variablen (php), welche ich in Funktionen umbauen möchte.
Gegeben sind jede Menge Variablen dieser Art:
PHP-Code:
$GLOBALS["FOUNDER_north1338_274hbg"]
und
PHP-Code:
$GLOBALS['FOUNDER_south926hsbggtf']
Daraus soll werden meine Funktion:
PHP-Code:
SEARCHER("FOUNDER_north1338274hbg")
In notepadd++ ohne regex wäre der Anfang kein Problem. Ich suche einfach nach und ersetze dies mit . Das anschließende Problem ist
1. die variable Länge des Folgestrings (hier z.B. north1338_274hbg oder south926hsbggtf)
2. das notepad++ Ende der Variable "] nicht ersetzen kann, da dass natürlich noch bei 1000 anderen Zeilen im Code vorkommen kann.
Ich brauch also RegEx, um den String in der Mitte zu behalten und drumrum das
$GLOBALS["FOUNDER_ in
SEARCHER("FOUNDER_
und das
"] in
")
zu ändern. Hat da jemand den passenden Ausdruck zur Anhand? Ich habe mich auf https://regexr.com/ schon umgesehen. Aber ohne Kenntnisse von RegEx wohl eher schwierig.
-
Suchen: \$GLOBALS\[["'](.+?)["']\]
Ersetzen: SEARCHER("$1")
-
Danke für Die Hilfe.
Leider findet Regex jetzt neben auch andere . Das hatte ich sicher nicht erwähnt. Es soll nur
Code:
$GLOBALS["FOUNDER_"]
oder
Code:
$GLOBALS['FOUNDER_']
gefunden werden und durch
Code:
SEARCHER("FOUNDER_")
oder
Code:
SEARCHER('FOUNDER_')
ersetzt werden
-
Okay, dann probiers mal hiermit:
Suchen: \$GLOBALS\[["'](FOUNDER_.+?)["']\]
Ersetzen: SEARCHER("$1")
edit: wenn '...' nicht durch "..." ersetzt werden soll:
Suchen: \$GLOBALS\[(('FOUNDER_.+?')|("FOUNDER_.+?"))\]
Ersetzen: SEARCHER($1)
-
Ah super. Der erste Fortschritt ist zu sehen. Jetzt werden nur noch die $GLOBALS["FOUNDER_..."] gefunden. Das sieht gut aus.
Aber beim Ersetzen geht was schief. Das Ergebnis ist komplett ohne Klammern und Hochkommas. Ich erkenne aber auch nicht wirklich, was die RegEx SEARCHER($1) macht ;)
Gefunden wird:
$GLOBALS['TXT_...']
und geändert wirds in:
SEARCHER"TXT_..."
Das geänderte sollte aber so aussehen:
SEARCHER("TXT_...")
Vielleicht nochmal zur Übersicht falls ich das nicht ordentlich erklärt habe:
$GLOBALS['FOUNDER_abbbfgdz273hd_knff8_001'] soll werden zu SEARCHER('FOUNDER_abbbfgdz273hd_knff8_001')
$GLOBALS['FOUNDER_7dhf6_003'] soll werden zu SEARCHER('FOUNDER_7dhf6_003')
-
Lag an notepad++, bei meinem Editor (und bei den meisten anderen) funktioniert mein Code. Für notepad++ musst du beim Ersetzen SEARCHER\("$1"\) nehmen, dann sollte es endgültig funktionieren.
-
:-) Yeah, das sieht gut aus. Ich danke dir mein Bester. Das erste Bier heute Abend geht auf dich ;) ;) ;)