回答編集履歴
2
fix
answer
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
**下記内容には間違いがあります。間違った経緯はコメント欄を参照下さい。**
|
2
|
+
|
1
3
|
正規表現エンジンにより実装が異なります。実際には DFA(決定性有限オートマトン) と NFA(非決定性オートマトン) の違いにより結果が異なります。
|
2
4
|
|
3
5
|
DFA の場合、今見ている入力に対して次にやってくる遷移が確定されます。逆に NFA の場合、各々の入力に対して遷移は複数存在しています。
|
1
fix
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
DFA の場合、今見ている入力に対して次にやってくる遷移が確定されます。逆に NFA の場合、各々の入力に対して遷移は複数存在しています。
|
4
4
|
|
5
|
-
今回のケースであれば24行目の2文字目の「値」は、DFA の場合は24行目1文字目の「値」のマッチにより遷移を失ってしまった為、マッチしなくなったという結果です。(文字がない、つまり先行しない)
|
5
|
+
今回のケースであれば24行目の2文字目の「値」は、DFA の場合は24行目1文字目の「値」のマッチにより遷移を失ってしまった為、2文字目はマッチしなくなったという結果です。(文字がない、つまり先行しない)
|
6
6
|
|
7
7
|
逆に NFA の場合 `(?!値段)値` は先行する事が必須となる為、24文字目1文字目は先行するものがありませんのでマッチしません。ちなみに20行目の違いもそれです。しかし24行目2文字目にはパターンにマッチする事になります。
|
8
8
|
|