I-Typ und Argumente in diesem Ausdruck trennen müssen:Rekursion in regulären Ausdruck funktioniert nicht
tf->get_TextState()->set_TextMatrix(std::shared_ptr<DOM::Matrix>(new DOM::Matrix(m->get_M11(), -m->get_M12())));
ich erstellen Sie die folgende regex:
std::shared_ptr[ \t]*<(?'type'[A-Z,:,_,a-z,<,>]*){1}>[ \t]*\([ \t]*new[ \t]*(\k'type'){1}(?'args'.*)
Das Ergebnis ist:
Gruppe "Typ":
Gruppe "args": (m->get_M11(), -m->get_M12())));
das Problem in einer "args" Gruppe, weil ich brauche nur das: (m->get_M11(), -m->get_M12())
Für das tun, ich .*
zu ändern: \([^()]*+(?:(?R)[^()]*+)*+\)
Dieser Ausdruck separetly sehr gut funktionieren auf: (m->get_M11(), -m->get_M12())));
Bei einem erwarteten Ergebnis Aber (m->get_M11(), -m->get_M12())
wenn ich hinzufüge es ganz Muster heißt:
std::shared_ptr[ \t]*<(?'type'[A-Z,:,_,a-z,<,>]*){1}>[ \t]*\([ \t]*new[ \t]*(\k'type'){1}(?'args'\([^()]*+(?:(?R)[^()]*+)*+\))
Es entspricht nichts. Was mache ich falsch?
Welche Sprache ist das? Bitte markieren Sie Ihre Frage damit. – Bergi
Was ist die Ausgabe, nach der Sie suchen (und was soll '* +' tun? – thebjorn