回答編集履歴

1

追記

2018/01/10 06:50

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -43,3 +43,69 @@
43
43
  ______ この範囲が今チェックしようとしている位置の直前までの部分
44
44
 
45
45
  ```
46
+
47
+
48
+
49
+ ---
50
+
51
+ 追加3について
52
+
53
+
54
+
55
+ 比較の様子を「処理になぞらえて」理解するのもよいのですが、どちらかといえば宣言的に理解した方がよいというのが自分の考えです。
56
+
57
+
58
+
59
+ 何度も例を変更して申し訳ないですが・・・
60
+
61
+
62
+
63
+ 正規表現に含まれる連続したパターン..., A , B, ...がありBが先読みでも後読みでもないとして...
64
+
65
+
66
+
67
+
68
+
69
+ ```text
70
+
71
+ Aが先読みパターン:
72
+
73
+ ...|x|x|x|x|x|... <=照合対象の文字列
74
+
75
+ ^ Aを照合するまでの照合対象位置がここだとすると
76
+
77
+ ^_ _ ... Aは^の位置から始まる部分文字列と照合する。
78
+
79
+ ^_ _ ... BはAと同じ位置から照合される
80
+
81
+ (要するにAの照合によりBの照合位置は変わらない)
82
+
83
+
84
+
85
+ Aが後読みパターン:
86
+
87
+ ...|x|x|x|x|x|x|... <=照合対象の文字列
88
+
89
+ ^ Aを照合するまでの照合対象位置がここだとすると
90
+
91
+ ... _ _$ Aは$の位置で終わる部分文字列と照合する。
92
+
93
+ ^_ _ ... BはAの照合位置の次の位置から照合される
94
+
95
+ (要するにAの照合によりBの照合位置は変わらない)
96
+
97
+
98
+
99
+ Aが先読みでも後読みでもないパターン:
100
+
101
+ ...|x|x|x|x|x|x|... <=照合対象の文字列
102
+
103
+ ^ Aを照合するまでの照合対象位置がここだとすると
104
+
105
+ ^_ ... _$ Aは^の位置から始まる部分文字列と照合する。
106
+
107
+ ^_ _ ... BはAの照合位置の末尾の位置から照合される
108
+
109
+
110
+
111
+ ```