teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

テキスト修正

2019/11/02 06:23

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -44,11 +44,10 @@
44
44
 
45
45
  上記では、`"hoge"`ではなくかつ空白を含まない文字列が満たすべき正規表現`^([0-6]?[0-9]):([0-6]?[0-9])` は使用していませんが、pattern1からpattern3 の入力に対しては、望まれる結果が出力されます。
46
46
 
47
+ とはいえ、 ご質問にある `^([0-6]?[0-9]):([0-6]?[0-9])` を使わない上記のコードでは、望む結果が得られないような、別の(pattern4 以降の)入力パターンとそれに対する期待値が、おそらくあると思われましたので、それらについては、コメントからお知らせ頂くか、質問に追記をお願い致します。
47
48
 
48
49
  ### 追記
49
50
 
51
+ `([0-6]?[0-9]):([0-6]?[0-9])` に合致しない文字列、たとえば `"70:70"` といったものも、解析対象の文字列に入ってくる可能性があり、それを排除する必要があったりするならば、`([0-6]?[0-9]):([0-6]?[0-9])`にも出番はあると思いますが、ご質問にある pattern1 〜 pattern3 の事例では、hoge以外の全てのトークンは `[0-6]?[0-9]:[0-6]?[0-9]` を満たしていることが目視で確認できますので、`([0-6]?[0-9]):([0-6]?[0-9])`は不要になります。このように、正規表現の課題を考える場合、解析対象の文字列ではそもそも何が満たされていることを前提にしてよいのかをはっきりさせることで、正規表現を使ったプログラム側を(当初、想定していたものよりも)簡素にできることがあります。
50
52
 
51
- とはいえ、 ご質問にある `^([0-6]?[0-9]):([0-6]?[0-9])` を使わない上記のコードでは、望む結果が得られないような、別の(pattern4 以降の)入力パターンとそれに対する期待値が、おそらくあると思われましたので、それらについては、コメントからお知らせ頂くか、質問に追記をお願い致します。
52
-
53
-
54
53
  以上、参考になれば幸いです。

3

テキスト修正

2019/11/02 06:23

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -48,7 +48,7 @@
48
48
  ### 追記
49
49
 
50
50
 
51
- とはいえ、 ご質問にある `^([0-6]?[0-9]):([0-6]?[0-9])` を使わない上記のコードでは、望む結果が得られないような、別の(pattern4 以降の)入力パターンがらくあると思われまので、それらについては、コメントからお知らせ頂くか、質問に追記をお願い致します。
51
+ とはいえ、 ご質問にある `^([0-6]?[0-9]):([0-6]?[0-9])` を使わない上記のコードでは、望む結果が得られないような、別の(pattern4 以降の)入力パターンとそれに対する期待値、おそらくあると思われましたので、それらについては、コメントからお知らせ頂くか、質問に追記をお願い致します。
52
52
 
53
53
 
54
54
  以上、参考になれば幸いです。

2

テキスト修正

2019/11/02 04:25

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -42,9 +42,13 @@
42
42
 
43
43
  - **動作確認用jsFiddle:** [https://jsfiddle.net/jun68ykt/bkmLxctd/4/](https://jsfiddle.net/jun68ykt/bkmLxctd/4/)
44
44
 
45
- 上記では、`"hoge"`ではなくかつ空白を含まない文字列が満たすべき正規表現`[0-6]?[0-9]:[0-6]?[0-9]` は使用していませんが、pattern1からpattern3 の入力に対しては、望まれる結果が出力されます。
45
+ 上記では、`"hoge"`ではなくかつ空白を含まない文字列が満たすべき正規表現`^([0-6]?[0-9]):([0-6]?[0-9])` は使用していませんが、pattern1からpattern3 の入力に対しては、望まれる結果が出力されます。
46
46
 
47
- とはいえ、 `[0-6]?[0-9]:[0-6]?[0-9]` を使わない上記のコードでは、望む結果が得られないような(pattern4 以降の)入力パターンが恐らくあると思われますので、それらについてはコメントからお知らせ頂くか、質問に追記をお願い致します。
48
47
 
48
+ ### 追記
49
49
 
50
+
51
+ とはいえ、 ご質問にある `^([0-6]?[0-9]):([0-6]?[0-9])` を使わない上記のコードでは、望む結果が得られないような、別の(pattern4 以降の)入力パターンが恐らくあると思われますので、それらについては、コメントからお知らせ頂くか、質問に追記をお願い致します。
52
+
53
+
50
54
  以上、参考になれば幸いです。

1

テキスト修正

2019/11/02 03:47

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  ```
42
42
 
43
- - **動作確認用jsFiddle:** [https://jsfiddle.net/jun68ykt/bkmLxctd/3/](https://jsfiddle.net/jun68ykt/bkmLxctd/3/)
43
+ - **動作確認用jsFiddle:** [https://jsfiddle.net/jun68ykt/bkmLxctd/4/](https://jsfiddle.net/jun68ykt/bkmLxctd/4/)
44
44
 
45
45
  上記では、`"hoge"`ではなくかつ空白を含まない文字列が満たすべき正規表現`[0-6]?[0-9]:[0-6]?[0-9]` は使用していませんが、pattern1からpattern3 の入力に対しては、望まれる結果が出力されます。
46
46