JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの正規表現(RegExp)で角括弧内の複数の値を括弧なしで取得する方法

JavaScriptの正規表現で角括弧内の値を取得する方法

JavaScriptの正規表現(RegExp)を使えば、文字列中の角括弧「[ ]」で囲まれた値を、括弧を除いた状態でそのまま取り出すことができます。マッチ結果は配列として返されるため、インデックス0、1…Nを指定して各値にアクセスするのがポイントです。

ここでは、後読みアサーション(lookbehind)(?<=\[)と先読みアサーション(lookahead)(?=\])を組み合わせたパターンを使用します。これにより、「開き括弧の直後から閉じ括弧の直前まで」の部分だけがマッチ対象になります。

コード例

var regularExpression = /(?<=\[).*?(?=\])/g;
var getTheValueWithIndex = "[John Smith][David Miller]".match(regularExpression);
console.log("1つ目の値(括弧なし)=" + getTheValueWithIndex[0]);
console.log("2つ目の値(括弧なし)=" + getTheValueWithIndex[1]);

上記のプログラムを実行するには、Node.js環境で次のコマンドを入力します。

node fileName.js

ここでは、ファイル名をdemo132.jsとして説明します。

実行結果

プログラムを実行すると、以下のような出力が得られます。

PS C:\Users\Amit\JavaScript-code> node demo132.js
1つ目の値(括弧なし)=John Smith
2つ目の値(括弧なし)=David Miller

正規表現パターンの解説

使用したパターンの各要素は、次のような役割を持っています。

  • (?<=\[):後読みアサーション。直前に開き括弧「[」があることを確認します(マッチ結果には含まれません)。
  • .*?:任意の文字列を最短一致で取得します。
  • (?=\]):先読みアサーション。直後に閉じ括弧「]」があることを確認します(マッチ結果には含まれません)。
  • /g:グローバルフラグ。文字列全体から該当するすべての箇所を検索します。

match()メソッドはマッチした文字列の配列を返すため、getTheValueWithIndex[0]getTheValueWithIndex[1]のようにインデックスを指定すれば、括弧を除いた値をそれぞれ取得できます。この手法は、タグや区切り文字で囲まれたデータを解析したい場合にも応用できる、非常に便利なテクニックです。

  1. JavaScriptでusemap属性の値を取得する方法をわかりやすく解説

    JavaScriptで画像のusemap属性の値を取得したい場合は、useMapプロパティを使用します。このプロパティを使うことで、HTML要素に設定されたイメージマップの参照先を簡単に読み取ることができます。usemap属性とは?usemap属性は、クライアントサイドイメージマップを有効にするために<img>タグに指定される属性です。イメージマップ自体は、特殊な<map>タグと<area>タグによって定義されます。マップとして利用する画像は、通常どおり<img>要素を使ってページに挿入します。ただし、通常の画像とは異なり、usemapという追加

  2. JavaScriptでリンクのtype属性の値を取得する方法

    JavaScriptでリンク(アンカー要素)のtype属性の値を取得するには、typeプロパティを使用します。type属性は、リンク先のドキュメントがHTML(text/html)なのか、CSS(text/css)なのかといった、リソースの種類(MIMEタイプ)を示すために使われる属性です。この属性の値は、JavaScriptから簡単に読み取ることができます。サンプルコード以下のコードを実行すると、リンクのtype属性の値を取得して画面に表示できます。<!DOCTYPE html> <html>    <body>   &nbs