JavaScript 正規表現を使用して文字列を抽出するにはどうすればいいですか? 質問する

JavaScript 正規表現を使用して文字列を抽出するにはどうすればいいですか? 質問する

JavaScript Regex を使用してファイルから部分文字列を抽出しようとしています。以下はファイルからの抜粋です:

DATE:20091201T220000
SUMMARY:Dad's birthday

抽出したいフィールドは「概要」です。アプローチは次のとおりです。

extractSummary : function(iCalContent) {
  /*
  input : iCal file content
  return : Event summary
  */
  var arr = iCalContent.match(/^SUMMARY\:(.)*$/g);
  return(arr);
}

ベストアンサー1

function extractSummary(iCalContent) {
  var rx = /\nSUMMARY:(.*)\n/g;
  var arr = rx.exec(iCalContent);
  return arr[1]; 
}

次の変更が必要です:

  • *上記のように括弧内に入れてください。そうしないと、一致するグループには 1 つの文字のみが含まれます。

  • ^およびを削除します$。グローバル オプションを使用すると、行の先頭と末尾ではなく、完全な文字列の先頭と末尾に一致します。代わりに明示的な改行に一致します。

  • 完全な配列ではなく、一致するグループ (括弧内にあるもの) が必要なのではないでしょうか。 はarr[0]完全な一致 ( "\nSUMMARY:...") であり、次のインデックスにはグループの一致が含まれます。

  • String.match(regexp) は、一致した文字列を含む配列を返すはずです。私のブラウザではそうはなりません (Mac の Safari はグループではなく、完全な一致のみを返します) が、Regexp.exec(string) は機能します。

おすすめ記事