für folgendes Problem bekomme ich das Pattern einfach nicht hin: Es sollen alle Zeichenketten gefunden werden, die mit con( beginnen und mit einem Semikolon enden. Das Semikolon darf aber nicht in Anführungszeichen stehen. Bsp:
Steht vor dem End-Semikolon auch immer eine schließende Klammer? Und kommt nach der öffnenden Klammer immer ein Anführungszeichen? Können in der Zeichenkette auch mehrere Anführungszeichenpaare stehen? Ist ein Text wie davorcon('test;);danach denkbar (und sei es als Eingabefehler), und wie soll damit umgegangen werden?
da eine weitere Definition fehlt, geh ich davon aus, dass auch
con(); con(1);
gefunden werden sollte.. Was ich nicht verstanden hab, ist das mit dem "mit con beginnen" und die dazugehörigen Beispiele. Auch fehlt die Angabe, um welche Platform es sich handelt (Javascript?). Mit
\bcon\(('([^'\\]|\\[\w\W])*'|[^')])*\);
kommst Du aber sicherlich ein Stück weiter.
'([^'\\]|\\[\w\W])*'
findet eine Zeichenkette, die in der Form auch Escape-Zeichen erlaubt, also z.B. auch '\''.
[^')]
findet ein beliebiges Zeichen, außer ' und ) (je nach Sprache musst Du evtl. auch ein \ vor ' und/oder ) setzen).
\b
prüft, ob die aktuelle Position eine Wortgrenze darstellt (also Anfang/Ende des Textes oder Anfang/Ende eines Wortes)
Offen ist, ob noch weitere Klammernpaare vorkommen können, also z.B.
Danke dir, für die korrekte Antwort ;) Denke aber er sucht nur die Ergebnisse, wo con am Anfang steht, also ohne davorcon etc. Aber eine genaue Spezifikation wäre hier hilfreich!
Ist leider nicht getestet, da ich gerade keine Zeit zum ausführlichen Testen habe. Mir liegen RegEx leider nicht so super, aber hoffe mal das könnte klappen:
\bcon\('[^)]*.'*;
Hier musst du auf jeden Fall noch modifizieren, ist definitiv eine schlechte Syntax! Ich werde es gerne heute Abend testen und verbessern, sofern bis dato noch keiner eine Antwort hat. Hoffe es hilft die weiter!
davorcon('test;);danach
denkbar (und sei es als Eingabefehler), und wie soll damit umgegangen werden?