2

RE2 を使用して一部のテキストの正規表現を照合していますが、結果の抽出に苦労しています。

私が欲しいのは:

テキスト: "Sample text"正規表現
: "p.*x"
テキストから完全な正規表現一致を抽出: "ple tex"

これをサポートする RE2 API の関数が見つかりません。PartialMatch は正規表現 (かっこでマーク) からグループを抽出するだけですが、私の正規表現はユーザーからのものです。また、各正規表現をグループに手動でラップしたくありません。これは、エレガントなソリューションのようには聞こえず、ユーザーが正規表現の先頭に修飾子を配置すると機能しないためです。これは非常に基本的な機能のように思えるので、これを行う明確な方法がないことに驚いています。

誰でもこれに対する解決策を知っていますか?

4

1 に答える 1

2

パターン全体をラップすることは、インライン修飾子がパターンの最初にある必要がないため、有効な代替手段です。たとえば、外側の括弧のペアを追加すると、パターン内((?s)go.*there|take.*this)(?s)両方に DOTALL 修飾子が適用され.ます。

string text; 
if (RE2::PartialMatch("Sample text", "(p.*x)", &text)) {
    // Put more code here  
}
于 2016-11-06T21:59:28.250 に答える