[スレッド全体]

2008/7/3 (木) 03:46:45 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; KDDI-MA33) Opera 8.60 [ja]
[5378] 正規表現での複数行対応
簡易的ではありますが、鬼車使用のまま複数行への対応を考えています。
 
取りあえず検索とgrepは確認できましたが、マッチする箇所に問題があります。
 
aaaaaaというテキストに対してaaaで検索した場合に何ヶ所にマッチするかという問題で、私としては4箇所にマッチして欲しかったのですが必死の過去ログ検索により2箇所が仕様という事が分かりました。
 
これに引っかかっていまして、例えば、
a
a
a
a
a
a
に対してa\r\na\r\naで検索すると、上からの検索は2箇所、下からは4箇所マッチします。
これは、下からの複数行検索は「次の検索開始位置はマッチした文字列の終了位置から」という仕様の影響を受けないためですが、それを加味する様な修正も難しい感じです。
 
で、いっそのこと正規表現での検索時は「次の検索開始位置はマッチした文字列の開始位置の次から」に変更してはどうだろうかと思うのですがまずいでしょうか?

2008/7/3 (木) 10:09:26 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; KDDI-MA33) Opera 8.60 [ja]
[5379] Re:正規表現での複数行対応
前言撤回。
やはり既存動作を変更するのは面白くないので、
“正規表現での検索時は「次の検索開始位置はマッチした文字列の開始位置の次から」”
ではなく、
“上からの検索且つマッチした文字列が複数行の場合「次の検索開始位置はマッチした文字列の開始位置の次行の行頭から」”
にしようと思います。
 
こうすれば横方向の動作を変更せずに縦方向の動作を統一できます。
ただ、横方向の動作と縦方向の動作が違って分かりにくく感じるかもしれませんが……

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]