18

ブーストベースの正規表現を C++11 正規表現に変換しています。というキャプチャ グループがありurlます。

\s*?=\s*?(("(?<url>.*?)")|('?<url>.*?)'))

ブーストを使用すると、名前でキャプチャ グループを取得するためにsmatch呼び出すことができます。match.str("url")ではstd::smatch、インデックス付きのサブマッチのみが表示されます。

std::smatch クラスを使用して URL キャプチャにアクセスするにはどうすればよいですか?

4

1 に答える 1

15

C++11 標準では、キャプチャ グループに名前を付けることはできません。C++11 正規表現は、ECMAScript 構文に準拠しています。これは、すべてを説明するリンクですhttp://www.cplusplus.com/reference/regex/ECMAScript/。考えてみればこれはがっかりするかもしれませんが、本当の正規表現はこれをサポートしません。

于 2013-06-03T00:02:27.100 に答える