1. ホーム
  2. javascript

[解決済み] 中括弧で囲まれた文字列を取得する正規表現

2022-06-04 17:17:10

質問

残念ながら、覚えている限り何年もの間、少なくとも年に一度は正規表現を学ぼうとしてきたにもかかわらず、あまりに使用頻度が低いため、いつも忘れてしまっています。今年の私の新年の抱負は、正規表現を二度と学ぼうとしないことです。 だから、今年は私を涙から救うために、Stack Overflowにそれを与えることにします。 . (ラスト クリスマス リミックス)。

このような形式の文字列を渡したい。 {getThis} という文字列を渡すと、その文字列が getThis . どなたか、私の新年の決意を貫くための手助けをしていただけませんか?


Stack Overflow の関連する質問です。

どのように解決するのですか?

文字列が常にその形式である場合、正規表現は過剰な処理です。

>>> var g='{getThis}';
>>> g.substring(1,g.length-1)
"getThis"

substring(1 は、1文字先から(ちょうど最初の { ) と ,g.length-1) は、文字列長から1を引いた位置の文字まで(を含まない)文字を取ることを意味します。これは、位置がゼロベースであるため、すなわち g.length-1 が最後の位置だからです。

元の投稿者以外の読者のために もし、それが がある場合 を正規表現にする場合は /{([^}]*)}/ を、空文字列を許容したい場合は /{([^}]+)}/ は、中括弧の間に少なくとも一文字があるときだけマッチさせたい場合は 内訳は

  • / : 正規表現パターンを開始します。
    • { : 文字通りの中括弧
      • ( : キャプチャを開始する
        • [ : キャプチャする文字のクラスを定義し始める
          • ^} 以外のものは } "です。
        • ] : OK、これがクラス全体の定義です。
        • * : 今定義したクラスに一致する任意の数の文字
      • ) : キャプチャ完了
    • } : 捕獲したものの直後に中括弧を付けなければなりません。
  • / : 正規表現パターンを終了します。