質問編集履歴
6
お礼
title
CHANGED
File without changes
|
body
CHANGED
@@ -85,4 +85,17 @@
|
|
85
85
|
10、検索文字列`(?![a-e])`はアンマッチングなので、本文を本文`fの右の位置`から一文字進めようとするが無い
|
86
86
|
11、最後まで検索したので検索終了
|
87
87
|
|
88
|
-
この流れであってますかね?
|
88
|
+
この流れであってますかね?
|
89
|
+
|
90
|
+
|
91
|
+
###お礼
|
92
|
+
|
93
|
+
|
94
|
+
否定先読み正規表現の`マッチング`がよく分からなかったので質問したのですが、Atomの使用や入力ミスそのほか様々な要素が`アンマッチ`となってしまった為、コメント含め複雑化してしまったようです。
|
95
|
+
|
96
|
+
しかし、テスト用に正規化されているとはまったく言えない入力文字列の画像で始まる質問にも、親切に答えてくださる皆様と`マッチング`できた事をとても嬉しく思っております。
|
97
|
+
|
98
|
+
お後がよろしいかは置いておいて、また色々な事を考えるきっかけとなりました。
|
99
|
+
ありがとうございました。
|
100
|
+
|
101
|
+
(僕はこの時間お腹が減る事を`先読み`しキープしておいたお菓子を食べながら作業を進めたいと思います)
|
5
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
否定先読みについて困っております。実行環境はatomです。
|
2
2
|
|
3
|
-

|
3
|
+

|
4
|
-
|
5
4
|
#聞きたい事
|
6
5
|
・私の考えのどこが間違っているのか?
|
7
6
|
|
4
ミス修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -53,11 +53,19 @@
|
|
53
53
|

|
54
54
|
|
55
55
|
orz...
|
56
|
+
ーーーーーーーーーーーーーー訂正ーーーーーーーーーー
|
56
57
|
|
57
|
-
|
58
|
+

|
58
59
|
|
60
|
+
私の書き方が間違えておりました。`(?!e)`と否定先読みのアンカーだけで検索することで、`e`前の空白文字列以外が検索されました。
|
59
|
-
|
61
|
+
ーーーーーーーーーーーーーーーーーーーーーーーーーー
|
60
62
|
|
63
|
+
|
64
|
+
|
65
|
+
~~という流れを辿っています。位置とマッチングだと正規表現の書き方としてすごく分かりやすかったのでうれしかったのです残念です。~~
|
66
|
+
|
67
|
+
~~またこれでは、先読みと後読みという言葉の意味理解ができていないです。~~
|
68
|
+
|
61
69
|
###追記3
|
62
70
|
|
63
71
|
コメントでは表現が見えづらいのでこちらを使用させていただきます。
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,4 +56,26 @@
|
|
56
56
|
|
57
57
|
という流れを辿っています。位置とマッチングだと正規表現の書き方としてすごく分かりやすかったのでうれしかったのです残念です。
|
58
58
|
|
59
|
-
またこれでは、先読みと後読みという言葉の意味理解ができていないです。
|
59
|
+
またこれでは、先読みと後読みという言葉の意味理解ができていないです。
|
60
|
+
|
61
|
+
###追記3
|
62
|
+
|
63
|
+
コメントでは表現が見えづらいのでこちらを使用させていただきます。
|
64
|
+
KSwordOfHaste様のコメントに対してです。
|
65
|
+
|
66
|
+
`(?![a-e])[b-f]` と `f` とのマッチングの様子を先読み後読みの表現が加わるように書いてみます。
|
67
|
+
|
68
|
+
1、検索文字列`(?![a-e])`と本文`fの左の位置`が比較される
|
69
|
+
2、検索文字列`(?![a-e])`は次に本文`[a-e]`が来る可能性があるため、本文`fの左の位置`をとりあえずキープしつつも次の本文の文字を読んでみる(これが先読みと言われる所以)
|
70
|
+
3、本文`f`が来た事により、検索文字列`(?![a-e])`と本文`fの左の位置`がマッチング
|
71
|
+
4、検索文字列`(?![a-e])[b-f]`のうち`(?![a-e])`がマッチングしたので、検索文字列`[b-f]`の検索に入る
|
72
|
+
5、本文`fの左の位置`はマッチングされたので次の検索比較される本文は`f`
|
73
|
+
6、検索文字列`[b-f]`は本文`f`と比較されマッチング
|
74
|
+
7、検索文字列`(?![a-e])[b-f]`がすべてマッチングする箇所が見つかったので、本文`f`(正確には{`fの左の位置`+`f`})はマッチングした文字列となる。
|
75
|
+
|
76
|
+
8、次の比較対象を求め検索文字列`(?![a-e])`と本文`fの右の位置`が比較される
|
77
|
+
9、検索文字列`(?![a-e])`は次に本文`[a-e]`が来る可能性があるため、本文`fの右の位置`をとりあえずキープしつつも次の本文の文字を読んでみるが文字は無い
|
78
|
+
10、検索文字列`(?![a-e])`はアンマッチングなので、本文を本文`fの右の位置`から一文字進めようとするが無い
|
79
|
+
11、最後まで検索したので検索終了
|
80
|
+
|
81
|
+
この流れであってますかね?
|
2
追記2
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,4 +37,23 @@
|
|
37
37
|
##追記
|
38
38
|
吉川WEB様(http://yoshikawaweb.com/w/wp-content/uploads/regex-cheat-sheet.pdf)に記載されていたチートシートがとても分かりやすいのですが、以下の赤線部分はコンピューターがどのように解釈してこの結果になるのかも不明です。
|
39
39
|
|
40
|
-

|
40
|
+

|
41
|
+
|
42
|
+
##追記2(混乱再び)(画像を載せる為)
|
43
|
+
|
44
|
+
・`(?=hoge)`はhogeの左側の`位置`とマッチングする
|
45
|
+
・`(?<=hoge)`はhogeの右側の`位置`とマッチングする
|
46
|
+
|
47
|
+

|
48
|
+

|
49
|
+
|
50
|
+
なるほど!`位置とマッチング`という考え方が抜けていたのか
|
51
|
+
という事は`(?!=hoge)`はhogeの左側以外の位置とマッチングするのかな?
|
52
|
+
|
53
|
+

|
54
|
+
|
55
|
+
orz...
|
56
|
+
|
57
|
+
という流れを辿っています。位置とマッチングだと正規表現の書き方としてすごく分かりやすかったのでうれしかったのです残念です。
|
58
|
+
|
59
|
+
またこれでは、先読みと後読みという言葉の意味理解ができていないです。
|
1
追記の記入
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,4 +32,9 @@
|
|
32
32
|
##所感
|
33
33
|
サイトによって表現がバラバラだったり、実際試してみると思い通りいくときといかない時がある。
|
34
34
|
根本的に理解が足りてないと思うが上手くいかない度合いがすごいので、基本の所で単純な勘違いをしているかも・・・
|
35
|
-
正規表現は理解が足りていないと、バグを簡単に入れ込んでしまうと思うので使用が怖い・・・
|
35
|
+
正規表現は理解が足りていないと、バグを簡単に入れ込んでしまうと思うので使用が怖い・・・
|
36
|
+
|
37
|
+
##追記
|
38
|
+
吉川WEB様(http://yoshikawaweb.com/w/wp-content/uploads/regex-cheat-sheet.pdf)に記載されていたチートシートがとても分かりやすいのですが、以下の赤線部分はコンピューターがどのように解釈してこの結果になるのかも不明です。
|
39
|
+
|
40
|
+

|