0
文字列に一致させるためにpcre2を使用したいと思います。 たとえば、「a」、「b」、「c」、「d」、「e」の文字列パターンがあります。 私は長いテキスト "str"を照合します。 "str"と一致するパターン "a | b | c | d | e"をpcre2_matchを使って作成します。 一致するパターンを知るにはどうすればよいですか? "a"、 "b"、 "c"、 "d"、 "e"と一致するパターンを比較したくないので、単に "a"や "b"ではなく、もう一度。pcre2で一致するグループ番号を取得する方法
の終了前に見た最後のパターンのオフセットをrememeberそして、あなたの入力パターンを変更
PCRE2_AUTO_CALLOUT
を使用してブランチにパターンオフセットをマッピングするためにいくつかの方法を見つけることができない場合グループ:(a)|(b)|(c)|(d)、一致するグループの数はどのように取得できますか?それはどこに保管されていますか? – johnhypo@johnhypoこれは[一致データブロック](http://pcre.org/current/doc/html/pcre2api.html#SEC27)にあります。より正確には* ovector *です。それを読んでください[ここ](http://pcre.org/current/doc/html/pcre2api.html#SEC30)。 'ovector [2 * n]!= PCRE2_UNSET'の場合、キャプチャグループ番号** n **が一致するかどうかを知ることができます。 ** n **はインデックス0が完全なパターンを指定するので、1から始まります。代わりに、 'pcre2_match'の戻り値を使用することもできます。これは、設定されている最も高い取得グループ番号です。 –
少し訂正: 'pcre2_match'の戻り値は** 1 + **最も高い捕捉されたグループ番号です。 –