Sto convertendo le mie espressioni regolari basate su boost in regex C++ 11. Ho un gruppo di acquisizione denominato url
:C++ 11 Regex Cattura gruppi per nome
\s*?=\s*?(("(?<url>.*?)")|('?<url>.*?)'))
con boost, se aveste un smatch
si potrebbe chiamare match.str("url")
per ottenere il gruppo di cattura per nome. Con std::smatch
, vedo solo sub-corrispondenze indicizzate.
Come posso ottenere l'accesso all'url capture utilizzando la classe std :: smatch?
Hai provato '(? P. *?)' Invece di '(? . *?)'? –
HamZa
@HamZa Non sono sicuro che l'espressione regolare C++ 11 supporti i gruppi di acquisizione denominati. Ho appena letto l'intero capitolo dedicato all'argomento nel nuovo "Linguaggio di programmazione C++" di Stroustrup e non ne parla nemmeno. E molti dei riferimenti online non sembrano indicare diversamente. –
Sembra che non supporti i gruppi denominati in base a questa [risposta] (http://stackoverflow.com/a/6398650). – HamZa