回答編集履歴

5

用語

2021/12/22 09:36

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -138,7 +138,7 @@
138
138
 
139
139
 
140
140
 
141
- | **最短マッチ** (Reluctant) | **最長マッチ** (Greedy) | **バックトラッキングのない最長マッチ** (Possessive) |
141
+ | **最短マッチ** (Reluctant) | **最長マッチ** (Greedy) | **独占的最長マッチ** (Possessive) |
142
142
 
143
143
  |:-----------------:|:-----------------:|:-------------------------:|
144
144
 

4

用語

2021/12/22 09:36

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -138,7 +138,7 @@
138
138
 
139
139
 
140
140
 
141
- | **最短マッチ** | **最長マッチ** | **バックトラッキングのない最長マッチ** |
141
+ | **最短マッチ** (Reluctant) | **最長マッチ** (Greedy) | **バックトラッキングのない最長マッチ** (Possessive) |
142
142
 
143
143
  |:-----------------:|:-----------------:|:-------------------------:|
144
144
 

3

コード表記

2021/12/22 09:35

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -142,15 +142,15 @@
142
142
 
143
143
  |:-----------------:|:-----------------:|:-------------------------:|
144
144
 
145
- | ?? | ? | ?+ |
145
+ | `??` | `?` | `?+` |
146
146
 
147
- | *? | * | *+ |
147
+ | `*?` | `*` | `*+` |
148
148
 
149
- | +? | + | ++ |
149
+ | `+?` | `+` | `++` |
150
150
 
151
- | {3, 8}? | {3,8} | {3,8}+ |
151
+ | `{3, 8}?` | `{3,8}` | `{3,8}+` |
152
152
 
153
- | {5,}? | {5,} | {5,}+ |
153
+ | `{5,}?` | `{5,}` | `{5,}+` |
154
154
 
155
155
 
156
156
 

2

追記

2021/12/22 09:27

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -151,3 +151,43 @@
151
151
  | {3, 8}? | {3,8} | {3,8}+ |
152
152
 
153
153
  | {5,}? | {5,} | {5,}+ |
154
+
155
+
156
+
157
+ 上記のフォーマットは以下のようになっています。
158
+
159
+
160
+
161
+ `<回数を表す表記><マッチの積極性を表す表記>`
162
+
163
+
164
+
165
+ どちらにも `?` `+` が登場していますが,これらは全く異なる意味を持つので注意が必要です。
166
+
167
+
168
+
169
+ | 回数を表す表記 | 意味 |
170
+
171
+ |:-----------------:|:-----------------:|
172
+
173
+ | `?` | 0 回または 1回 |
174
+
175
+ | `*` | 0 回以上 |
176
+
177
+ | `+` | 1 回以上 |
178
+
179
+ | `{3,8}` | 3回〜8回 |
180
+
181
+ | `{5,}` | 5回以上 |
182
+
183
+
184
+
185
+ | マッチの積極性を表す表記 | 意味 |
186
+
187
+ |:-----------------:|:-----------------:|
188
+
189
+ | `?` | 最もマッチ量が少ないものから考える。条件が満たされなかったとき,1文字増やして次の可能性を確認する。 |
190
+
191
+ | 無し | 最もマッチ量が多いものから考える。条件が満たされなかったとき,1文字減らして次の可能性を確認する。 |
192
+
193
+ | `+` | 最もマッチ量が多いもの**だけ**を考える。条件が満たされなかったとき,即座に失敗扱いにする。 |

1

表を追記

2021/12/22 09:25

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -131,3 +131,23 @@
131
131
 
132
132
 
133
133
  もうおわかりだと思いますが,**この正規表現は名前部分に `\p{L}\p{N}` に含まれない記号を許可しつつ,それだけの構成は禁止するという形になっています**。要件として,名前がすべて `\p{L}\p{N}` である場合はもちろん先読み無しで実現できる範囲のものにはなるでしょう。
134
+
135
+
136
+
137
+ # 追記1
138
+
139
+
140
+
141
+ | **最短マッチ** | **最長マッチ** | **バックトラッキングのない最長マッチ** |
142
+
143
+ |:-----------------:|:-----------------:|:-------------------------:|
144
+
145
+ | ?? | ? | ?+ |
146
+
147
+ | *? | * | *+ |
148
+
149
+ | +? | + | ++ |
150
+
151
+ | {3, 8}? | {3,8} | {3,8}+ |
152
+
153
+ | {5,}? | {5,} | {5,}+ |