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

回答編集履歴

5

文字不足を修正

2019/07/19 09:17

投稿

fana
fana

スコア12286

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

4

ダメな点を記述

2019/07/19 09:17

投稿

fana
fana

スコア12286

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

3

注釈追加

2019/07/19 09:16

投稿

fana
fana

スコア12286

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  foreach( var word in Words )
13
13
  {
14
14
  if( word.StartsWith(Target) && Regex.IsMatch(word, @"~[1-9][0-9]{0,3}$") )
15
- {
15
+ {//"aaa~2~99"とか"aaa ~125"とかもここに入ってくる
16
16
  Console.Write( word );
17
17
  uint No = 0;
18
18
  if( uint.TryParse( word.Substring( Target.Length+1 ), out No ) )

2

追記

2019/07/19 08:37

投稿

fana
fana

スコア12286

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

1

間違い修正

2019/07/19 08:31

投稿

fana
fana

スコア12286

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  正規表現でググった感じですが,
2
2
  ```
3
- Regex.IsMatch( word, Target+@"~[1-9]{1,4}$" )
3
+ Regex.IsMatch( word, Target+@"~[0-9]{1,4}$" )
4
4
  ```
5
5
  とかでそこそこいけませんか?