Hallo Patrick!
- Wie erhalte ich dann in diesem Falle die Strings vor und nach dem gefundenen Muster?
Es gibt die vordefinierten Variablen Prematch und Postmatch (Link hast Du in Deinem Posting zu $#name erhalten). Die zu nutzen ist aber eine erhebliche Geschwindigkeitsbremse.
Dann ist es vielleicht besser, hier gar keinen regulären Ausdruck zu verwenden, sondern es konventionell mit Schleifen zu realisieren?
- Statt $feld = /(?<!X)X{$times}(?=[^X])/;
hier fehlt die Tilde (~) nach dem =
Danke, war im Skript vorhanden.
BTW: Du solltest Dir die Bücher »Einführung in Perl« und »Programmieren mit Perl« wirklich zulegen.
Damit ist es leider nicht getan.
Wie Du in einem anderen Beitrag vorhin geschrieben hast, wären für ein gutes Programm viele Komponenten möglich.
Von regulären Expressions bräuchte ich aber relativ wenig.
Also ein Buch studieren für wenig "Reguläre Expressions", eines für "Templates" eines für CGI (wo auch nur einige Befehle ausreichen) eines für ....
Dann dürfte ich erst in einigen Jahren mit der Realisierung anfangen, denn ich habe auch noch einen kleinen Nebenjob.
Daher finde ich eigentlich die Hilfe hier ganz toll.
Wobei ich gar nicht verlange, wie manchmal gefordert wird, fertige Lösungen vorgesetzt zu bekommen.
Tipps wie der zitierte "Trick" reichen meistens aus um weiter zu kommen ebenso Hinweise auf bestimmte Textpassagen, s o f e r n der Helfende diese parat hat - er soll ja nicht für den Fragesteller "schmökern".
Ein gutes Beispiel war Deine Hilfe
http://de.selfhtml.org/perl/sprache/listen.htm#elementzugriff, unter »Beachten Sie«.
Ein globaler Verweis auf die Dokumentation hätte da für einen Anfänger nichts gebracht, da die Suche nach $# erfolglos war und er nicht weiß, in welchem Kapitel er suchen soll.
Aber zurück zum Thema:
»»qr~s gibt es nicht.
Man kann also nur Ausdrücke der Form /.../ mit qr klammern und nicht solche der Art s/----/ oder steht diese Möglichkeit in den von dir zitierten Büchern?
Gruß
Gerd