◀一般トップへ
  • 5556 正規表現キーワードの優先順位
    • 5559 RE: 正規表現キーワードの優先順位
      • 5562 Re2: 正規表現キーワードの優先順位
  • [5556] 正規表現キーワードの優先順位 beta 2006年11月02日 18:51

    正規表現キーワードは、上の方に行くほど優先順位が高くなるとなっていますが、
    aabbccddeeff
    という文字列に対して
    /ccdd/k 正規表現キーワード1(赤)
    /a.*f/k 正規表現キーワード2(青)
    とすると全部青になります。
    cとdだけ赤で残りが青になる、ということだと思っていたのですが。
    最長一致が優先した上で、同じ長さの文字列に対しては上の方に記述したものが優先される、ということなのでしょうか。
    • [5559] RE: 正規表現キーワードの優先順位 すい 2006年11月03日 00:47

      >正規表現キーワードは、上の方に行くほど優先順位が高くなるとなっていますが、

      違います。
      各正規表現がマッチした時の列(?)位置(横方向の位置)が前の物が優先。

      >aabbccddeeff
      >という文字列に対して
      >/ccdd/k 正規表現キーワード1(赤)
      >/a.*f/k 正規表現キーワード2(青)

      この場合、

      aabbccddeeff というテキストに対して
      /ccdd/k ← 5文字目からマッチする
      /a.*f/k ← 1文字目からマッチする

      なので、1文字目からマッチする /a.*f/k が優先されます。

      そして「a.*f」という正規表現ですから「aabbccddeeff」の範囲が
      (青)になります。一度(青)として決定した「aabbccddeeff」
      の範囲の文字に対しては、以後、他の正規表現キーワードが適用
      される事はありません。

      ちなみに、正規表現がマッチした時の列(?)位置(横方向の位置)が
      同じ物が複数あった場合には、正規表現キーワードの設定欄で
      上に定義されている物が優先になります。
      • [5562] Re2: 正規表現キーワードの優先順位 beta 2006年11月03日 12:13

        理解しました。ありがとうございます。