ユーザー入力を正規表現に埋め込む必要があるため、正規表現の特殊文字をエスケープする必要があり、文字列がどうなるかは事前にわかりません。
それは次のようなものになります
string pattern = "\\d+ " + myEscapeFunction(userData);
どの特殊文字をエスケープする必要がありますか? または、Qt のQRegExp::escapeに相当する機能はありますか?
ユーザー入力を正規表現に埋め込む必要があるため、正規表現の特殊文字をエスケープする必要があり、文字列がどうなるかは事前にわかりません。
それは次のようなものになります
string pattern = "\\d+ " + myEscapeFunction(userData);
どの特殊文字をエスケープする必要がありますか? または、Qt のQRegExp::escapeに相当する機能はありますか?
エスケープする必要のある文字のリストは、使用しているさまざまな正規表現の文法によって異なります。デフォルトを使用している場合ECMAScript
は、ドキュメントのリストQRegExp::escape
から始めるのがよいようです。それは言う:
特殊文字は$、(、)、*、+、。、?、[、、]、^、{、| と }。
そのリストは\
、何らかの理由で除外されています。
ただし、それよりも少し複雑です。角かっこ内では、と以外の文字はどれも\
特別]
で\]
はなく、エスケープしないでおく必要があるためです。
さらに、aの?
直後に来るa(
は特別ではありません。たとえば、でエスケープ(?=x)
する?
べきではありません。
それはほぼそれだと思いますが、確かにこれに十分な時間をかけていません。