回答編集履歴

5

文字不足を修正

2019/07/19 09:17

投稿

fana
fana

スコア11708

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  文字列Targetが,正規表現の記述に用いる特殊な文字(何て呼ぶのかわからないけど)を含む場合を考慮していない.
16
16
 
17
- Targetの内容次第では,正規表現の記述して間違った文字列になってしまい,ArgumentExceptionが発生する.
17
+ Targetの内容次第では,正規表現の記述して間違った文字列になってしまい,ArgumentExceptionが発生する.
18
18
 
19
19
 
20
20
 

4

ダメな点を記述

2019/07/19 09:17

投稿

fana
fana

スコア11708

test CHANGED
@@ -7,6 +7,14 @@
7
7
  ```
8
8
 
9
9
  とかでそこそこいけませんか?
10
+
11
+
12
+
13
+ ↑コメントにて,問題点ご指摘を頂きました :
14
+
15
+ 文字列Targetが,正規表現の記述に用いる特殊な文字(何て呼ぶのかわからないけど)を含む場合を考慮していない.
16
+
17
+ Targetの内容次第では,正規表現の記述して間違った文字列になってしまい,ArgumentExceptionが発生する.
10
18
 
11
19
 
12
20
 

3

注釈追加

2019/07/19 09:16

投稿

fana
fana

スコア11708

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  if( word.StartsWith(Target) && Regex.IsMatch(word, @"~[1-9][0-9]{0,3}$") )
28
28
 
29
- {
29
+ {//"aaa~2~99"とか"aaa ~125"とかもここに入ってくる
30
30
 
31
31
  Console.Write( word );
32
32
 

2

追記

2019/07/19 08:37

投稿

fana
fana

スコア11708

test CHANGED
@@ -7,3 +7,41 @@
7
7
  ```
8
8
 
9
9
  とかでそこそこいけませんか?
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ うーん,正規表現だけで抽出する方法は,正直私にはわかりませんでした.
18
+
19
+ こんな感じで,後段で数値として解釈できるか否かの判定を入れるとか…
20
+
21
+ ```
22
+
23
+ foreach( var word in Words )
24
+
25
+ {
26
+
27
+ if( word.StartsWith(Target) && Regex.IsMatch(word, @"~[1-9][0-9]{0,3}$") )
28
+
29
+ {
30
+
31
+ Console.Write( word );
32
+
33
+ uint No = 0;
34
+
35
+ if( uint.TryParse( word.Substring( Target.Length+1 ), out No ) )
36
+
37
+ { Console.WriteLine( " -> OK : " + No.ToString() ); }
38
+
39
+ else
40
+
41
+ { Console.WriteLine( " -> NG" ); }
42
+
43
+ }
44
+
45
+ }
46
+
47
+ ```

1

間違い修正

2019/07/19 08:31

投稿

fana
fana

スコア11708

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ```
4
4
 
5
- Regex.IsMatch( word, Target+@"~[1-9]{1,4}$" )
5
+ Regex.IsMatch( word, Target+@"~[0-9]{1,4}$" )
6
6
 
7
7
  ```
8
8