Ich konvertiere meine boost-basierten regulären Ausdrücke in C++ 11 Regex. Ich habe eine Capture-Gruppe url
genannt:C++ 11 Regex Capture-Gruppen nach Name
\s*?=\s*?(("(?<url>.*?)")|('?<url>.*?)'))
Mit Boost, wenn Sie eine smatch
hatte man konnte match.str("url")
rufen Sie die Capture-Gruppe mit Namen zu bekommen. Mit std::smatch
sehe ich nur indizierte Untertreffer.
Wie bekomme ich Zugriff auf die URL-Erfassung mit der Klasse Std :: Smatch?
Haben Sie '(? P. *?)' Anstelle von '(? . *?)'? –
HamZa
@ HamZa Ich bin mir nicht sicher, ob C++ 11 Regex namens Capture-Gruppen unterstützt. Ich habe gerade das ganze Kapitel gelesen, das dem Thema in Stroustrups neuer "C++ Programmiersprache" gewidmet ist und es nicht einmal erwähnt. Und viele der Online-Referenzen scheinen nichts anderes anzuzeigen. –
Es scheint, dass es benannte Gruppen gemäß dieser [Antwort] (http://stackoverflow.com/a/6398650) nicht unterstützt. – HamZa