質問編集履歴
1
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,11 @@
|
|
30
30
|
|
31
31
|
詳説正規表現第三版(62p)によれば、
|
32
32
|
|
33
|
-
>
|
33
|
+
> ```s/(?=s\b)(?<=\bJeff)/'/g```はどのような挙動を示すか?
|
34
|
+
|
35
|
+
この場合、「```(?=s\b)(?<=\bJeff)```」のどちらを先にするかはどうでもよいことだ。"右側をチェックしてから左側をチェック"しても、その逆でも、2つのチェックの組み合わせを成功させるためには、2つのチェックが同じ位置で成功しなければならないというところがポイントである。例えば、"Thoma▲s Jeff▲erson"という文字列には、「```(?=s\b)```」も「```(?<=\bJeff)```」もマッチするが(マークを付けた位置で)、**両方が成功する同一地点は、存在しないので二つの組み合わせは、マッチに至らない。**
|
36
|
+
|
37
|
+
これについて、"2つの組み合わせ"というちょっとあいまいな表現を使っていも、今のところはよいだろう。この場合なら、この表現の意味は直感的にわかる。しかし、正規表現エンジンが正規表現を適用する様子が必ずしも直感的にわかるとは言えない場合がときどきある。正規表現エンジンの挙動の仕組みは正規表現の本当の意味に現実的な影響を与えるので、4章では、これを正面から詳しく見ていくつもりだ。
|
34
38
|
|
35
39
|
|
36
40
|
|