私のプログラムでは、管理者が特定の文字列形式をテンプレート ドキュメントの一部として定義できるようにしています。これには正規表現が含まれている場合もあれば、単なるリテラル文字列の場合もあります。
リテラル文字列の場合は、ドキュメント内のすべてのインスタンスに対して文字列をそのまま自動的にコピーしたいのですが、(PERL) 正規表現の場合は、ユーザーに正しい文字列を入力するように求めます。この部分は、おそらく正規表現を理解していない下位レベルのユーザー (非管理者) によって実行されるため、入力するデフォルトとして提示したくありません。
現在、文字列 ala のループで単純な呼び出しを介して正規表現文字を検索しています。
if ( strchr ( "\\^.$({[+-?*|", cInputP [ iLoop ] ) != NULL ) {
bRet = TRUE;
break; }
ただし、これは洗練されておらず、構文ミスが発生しやすいようです。PCRE にこれを行う既存の関数はありますか? pcre_study() 関数はこれを行っていないようで、pcre_compile() からこの情報を取得する方法もわかりません。
理想的には、文字列をリテラル部分文字列とユーザーが入力した部分文字列のコンポーネントに分割して、置換文字列に正規表現が含まれている場合でも既知の必要な文字を事前に入力できるようにしたいと考えています。PCRE ライブラリをそのまま使用してこれを行うことはできますか?それとも独自のコードで拡張する必要がありますか?