• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FireFox正規表現のstickyフラグの意味)

FireFox正規表現のstickyフラグの意味

このQ&Aのポイント
  • FireFox3から、正規表現にstickyフラグなるものが追加されました。
  • MDNではサンプルが示されていますが、そのサンプルのフラグを「g」フラグに書き換えても挙動は全く同じであり、有用性の説明にはなっていないものと思われます。
  • yフラグはmgフラグ指定時と全く同じなのでしょうか。違う部分があるのでしょうか?もし違う部分があるのならyフラグの意味や、mgフラグとの違い・有用性がわかるサンプルを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

ヘルプを眺めながら試してみました。 その結果、yフラグとmgフラグとで「^」の解釈に違いがあることがわかりました。 var text = "a1a2a3a4a5\na6a7a8a9a0"; var regex = /^a[0-9]\n?/y; while(true){   var match = regex.exec(text);   if(match === null){    console.log("End");    break;   }   for(var i=0; i < match.length; i++){    console.log(i + ":" + match[i]);   } } yフラグでの実行結果: 0:a1 0:a2 0:a3 0:a4 0:a5 0:a6 0:a7 0:a8 0:a9 0:a0 End →「^」は行頭、または検索の開始位置とマッチ mgフラグでの実行結果: 0:a1 0:a6 End →「^」はあくまでも行頭とマッチ 構文解析を行うのに便利そうです。

pringlez
質問者

お礼

「^」の意味が変わるのがポイントですね。文章にするとわかりにくいですけど、(正しい)サンプルなら理解しやすかったです。 MDNの「^」がないサンプルは、ほとんど理解していない人が間違って作ったのでしょうね。 勉強になりました。ありがとうございました。

関連するQ&A

専門家に質問してみよう