正規表現 Part7at TECH
正規表現 Part7 - 暇つぶし2ch113:108=112
10/04/13 17:34:02
すいません、ちょっと勝手な自分の考察をだだ流しすることになりますけど

[^\\]+(?!\.txt) と (?!\.txt)[^\\]+ は同じ結果になる。
[^\\]+(?=\.txt) と (?=\.txt)[^\\]+ は結果が違う。

やっぱり>>110>>111さんのいうことでOKなんですね。

「C:\aaaa\bbbb\hogehoge.txt」

(?!\.txt)[^\\]+でヒットするのは「.txt」の「.」の前以外の場所全て。その場所を起点として後ろ側で[^\\]+が当てはまる所は全部食う。
[^\\]+(?!\.txt)でも結局「.」の前以外の全ての場所になり、[^\\]+で食うので今回の例の場合は結果が変わらず。

[^\\]+(?=\.txt)なら「.」の前でのみヒットし、その前で[^\\]+も当てはまる所は食う。(?=\.txt)[^\\]+なら後ろ側を食うので結果が違う。

[^\\]+(?=\.(?!txt))
位置検索で「txt」じゃない場所を探す→たくさんのヒットの中から「.」があるところを検索→それより前の部分で[^\\]+ =ファイル名

はあ大分スッキリしました。結局先読みを「^」や「$」と同じように考えればいいんですね、多分
答えくれた方々ありがとやんした!


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch