次のような特殊文字の文字列コンテンツを検出したい:ADD[ID,x,y];
この場合は次[
のとおりです。]
それは不可能ですか?
部分をキャプチャしたい場合はID,x,y
、それが可能であることを確認してください。
var str = "ADD[ID,x,y];";
var match = /\[([^\]]+)\]/.exec(str);
if (match) {
console.log(match[1]); // "ID,x,y"
}
表現は実にシンプルですが、複雑に見えます。そう:
/.../
正規表現リテラルです。\[
リテラル[
文字です ([
正規表現では特殊なので、エスケープする必要があります)。(....)
キャプチャ グループです。これを使用して、括弧内のテキストをキャプチャします。[^\]]
ではないもの」を意味する文字クラス]
です。]
そうしないと、文字クラスが終了するため、内部でエスケープする必要があります。+
とは「一つ以上の前のもの」という意味です。\]
は文字どおりの終了]
文字です。