1

ユーザー入力を正規表現に埋め込む必要があるため、正規表現の特殊文字をエスケープする必要があり、文字列がどうなるかは事前にわかりません。

それは次のようなものになります

string pattern = "\\d+ " + myEscapeFunction(userData);

どの特殊文字をエスケープする必要がありますか? または、Qt のQRegExp::escapeに相当する機能はありますか?

4

1 に答える 1

3

エスケープする必要のある文字のリストは、使用しているさまざまな正規表現の文法によって異なります。デフォルトを使用している場合ECMAScriptは、ドキュメントのリストQRegExp::escapeから始めるのがよいようです。それは言う:

特殊文字は$、(、)、*、+、。、?、[、、]、^、{、| と }。

そのリストは\、何らかの理由で除外されています。

ただし、それよりも少し複雑です。角かっこ内では、と以外の文字はどれも\特別]\]はなく、エスケープしないでおく必要があるためです。

さらに、aの?直後に来るa(は特別ではありません。たとえば、でエスケープ(?=x)する?べきではありません。

それはほぼそれだと思いますが、確かにこれに十分な時間をかけていません。

于 2013-03-20T12:57:50.603 に答える