文字列内の角括弧 "[" "]" をどのように正規表現に置き換えますか?[ と ] が正規表現の特殊文字であることは知っていますが、パターン文字列内の特定の文字として扱うための適切なエスケープ文字列がわかりません。
例として、「[1 1 1]」を「1 1 1」に変換します。
Re: 文字列の角かっこ "[" "]" を正規表現に置き換えるにはどうすればよいですか?そんな単純なことに、代用を使うことはできませんか?
a = "[1 1 1]";
b = substitute(a, "[", "", "]", "");
show(b);
"1 1 1"
Re: 文字列の角かっこ "[" "]" を正規表現に置き換えるにはどうすればよいですか?多分エスケープ文字の正規表現の問題
あなたはおそらくJMPのエスケープと戦っていて、正規表現のエスケープと混同されています@paul_vezzetti .
JMP 文字列は \[ と ]\ の特別なケースを作りますどこでもJMP 文字列で、JMP のエスケープをオフにします。
\!\[ を試して、裸の ] を使用してください。 正規表現は、[文字クラス] でない限り、] をエスケープする必要はありません。
regex("[1 2 3]","\!\[(.*)]","\1")「1 2 3」
\!\ は、文字どおりのバックスラッシュを作成するための JMP のエスケープです。 その後、正規表現は \[ を認識し、期待どおりに動作します。
または、 \[ ... ]\ を使用することもできますが、正規表現で実際に ]\ が必要な場合はさらに悪い問題が発生し、あまり明確ではないようです。
regex("[1 2 3]","\[\[(.*)]]\","\1")この二重エスケープの問題を解決するために、JMP が正規表現で引用された文字列を取得することを願っています。