回答編集履歴
5
用語
answer
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
|
|
69
69
|
# 追記1
|
|
70
70
|
|
|
71
|
-
| **最短マッチ** (Reluctant) | **最長マッチ** (Greedy) | **
|
|
71
|
+
| **最短マッチ** (Reluctant) | **最長マッチ** (Greedy) | **独占的最長マッチ** (Possessive) |
|
|
72
72
|
|:-----------------:|:-----------------:|:-------------------------:|
|
|
73
73
|
| `??` | `?` | `?+` |
|
|
74
74
|
| `*?` | `*` | `*+` |
|
4
用語
answer
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
|
|
69
69
|
# 追記1
|
|
70
70
|
|
|
71
|
-
| **最短マッチ** | **最長マッチ** | **バックトラッキングのない最長マッチ** |
|
|
71
|
+
| **最短マッチ** (Reluctant) | **最長マッチ** (Greedy) | **バックトラッキングのない最長マッチ** (Possessive) |
|
|
72
72
|
|:-----------------:|:-----------------:|:-------------------------:|
|
|
73
73
|
| `??` | `?` | `?+` |
|
|
74
74
|
| `*?` | `*` | `*+` |
|
3
コード表記
answer
CHANGED
|
@@ -70,11 +70,11 @@
|
|
|
70
70
|
|
|
71
71
|
| **最短マッチ** | **最長マッチ** | **バックトラッキングのない最長マッチ** |
|
|
72
72
|
|:-----------------:|:-----------------:|:-------------------------:|
|
|
73
|
-
| ?? | ? | ?+ |
|
|
73
|
+
| `??` | `?` | `?+` |
|
|
74
|
-
| *? | * | *+ |
|
|
74
|
+
| `*?` | `*` | `*+` |
|
|
75
|
-
| +? | + | ++ |
|
|
75
|
+
| `+?` | `+` | `++` |
|
|
76
|
-
| {3, 8}? | {3,8} | {3,8}+ |
|
|
76
|
+
| `{3, 8}?` | `{3,8}` | `{3,8}+` |
|
|
77
|
-
| {5,}? | {5,} | {5,}+ |
|
|
77
|
+
| `{5,}?` | `{5,}` | `{5,}+` |
|
|
78
78
|
|
|
79
79
|
上記のフォーマットは以下のようになっています。
|
|
80
80
|
|
2
追記
answer
CHANGED
|
@@ -74,4 +74,24 @@
|
|
|
74
74
|
| *? | * | *+ |
|
|
75
75
|
| +? | + | ++ |
|
|
76
76
|
| {3, 8}? | {3,8} | {3,8}+ |
|
|
77
|
-
| {5,}? | {5,} | {5,}+ |
|
|
77
|
+
| {5,}? | {5,} | {5,}+ |
|
|
78
|
+
|
|
79
|
+
上記のフォーマットは以下のようになっています。
|
|
80
|
+
|
|
81
|
+
`<回数を表す表記><マッチの積極性を表す表記>`
|
|
82
|
+
|
|
83
|
+
どちらにも `?` `+` が登場していますが,これらは全く異なる意味を持つので注意が必要です。
|
|
84
|
+
|
|
85
|
+
| 回数を表す表記 | 意味 |
|
|
86
|
+
|:-----------------:|:-----------------:|
|
|
87
|
+
| `?` | 0 回または 1回 |
|
|
88
|
+
| `*` | 0 回以上 |
|
|
89
|
+
| `+` | 1 回以上 |
|
|
90
|
+
| `{3,8}` | 3回〜8回 |
|
|
91
|
+
| `{5,}` | 5回以上 |
|
|
92
|
+
|
|
93
|
+
| マッチの積極性を表す表記 | 意味 |
|
|
94
|
+
|:-----------------:|:-----------------:|
|
|
95
|
+
| `?` | 最もマッチ量が少ないものから考える。条件が満たされなかったとき,1文字増やして次の可能性を確認する。 |
|
|
96
|
+
| 無し | 最もマッチ量が多いものから考える。条件が満たされなかったとき,1文字減らして次の可能性を確認する。 |
|
|
97
|
+
| `+` | 最もマッチ量が多いもの**だけ**を考える。条件が満たされなかったとき,即座に失敗扱いにする。 |
|
1
表を追記
answer
CHANGED
|
@@ -64,4 +64,14 @@
|
|
|
64
64
|
|
|
65
65
|
> それならば「(?=[\p{L}\p{N}]+?)」ではだめなのでしょうか。
|
|
66
66
|
|
|
67
|
-
もうおわかりだと思いますが,**この正規表現は名前部分に `\p{L}\p{N}` に含まれない記号を許可しつつ,それだけの構成は禁止するという形になっています**。要件として,名前がすべて `\p{L}\p{N}` である場合はもちろん先読み無しで実現できる範囲のものにはなるでしょう。
|
|
67
|
+
もうおわかりだと思いますが,**この正規表現は名前部分に `\p{L}\p{N}` に含まれない記号を許可しつつ,それだけの構成は禁止するという形になっています**。要件として,名前がすべて `\p{L}\p{N}` である場合はもちろん先読み無しで実現できる範囲のものにはなるでしょう。
|
|
68
|
+
|
|
69
|
+
# 追記1
|
|
70
|
+
|
|
71
|
+
| **最短マッチ** | **最長マッチ** | **バックトラッキングのない最長マッチ** |
|
|
72
|
+
|:-----------------:|:-----------------:|:-------------------------:|
|
|
73
|
+
| ?? | ? | ?+ |
|
|
74
|
+
| *? | * | *+ |
|
|
75
|
+
| +? | + | ++ |
|
|
76
|
+
| {3, 8}? | {3,8} | {3,8}+ |
|
|
77
|
+
| {5,}? | {5,} | {5,}+ |
|