- 892 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/24(月) 08:06:16 ID:gGfErR5e0]
- "foobarbaz" の "bar" だけ残そうと思って
Match = "foo(^(^bar))baz" Replace = "" とやっても、決してマッチしないのがお分かり頂けるかと思う。 ダブルネガティブ表現 "(^(^...))" は「"..." を置換せずにおく」という意味の表現ではない。 あくまで位置指定子なのである。 検索表現 "foo(^(^bar))baz" の、"foo" を (1)、"(^(^bar))" を (2)、"baz" を (3) とすると、 foo|barbaz (<部分表現 (1) がマッチしたぞ。どれどれ、更に部分表現 (2) を試してみるか…) foo|barbaz (<ここから先 "bar" が続いてる!(2) もマッチした!次は (3) を試すぞ!) foo|barbaz (<…って、後続文字列が "bar" なんだから、(3) がマッチするわけないじゃん…) foob|arbaz (<結局全体としてマッチしなかったね。とっとと次行こう、次) foobarbaz| (<どんどん行くよ〜)
|

|