にとって
positive number RegExp is ^[0-9]+$
negative number is ^-[0-9]+$
しかし、数字の間にスペースを追加し、最初に正か負かに関係なく任意の数字を受け入れる方法
Ruby で動作するパターンを提供できます (申し訳ありませんが、C# はしばらく使用していません)。このパターンは、関数で使用される場合、数値をキャプチャしscan
ます。C# でキャプチャとグループを使用して、同様のことができると確信しています。
pattern = /^\s*(
[\-\+]?
[0-9]+
)
(
(\s+
[\-\+]?
[0-9]+
)
)*$/x
xs = ["9", "+9", "-9", "87", "+87", "-87", "9 87", "9 +87", "9 -87", "+9 87",
"-9 87", "+9 +87", "-9 +87", "-9 87", "9 +9 -9", "9 +9 87", "9 +9 +87",
"9 +9 -87", "9 +9 654", "9 +9 +654", "9 +9 -654", "9 -9 87", "9 -9 +87",
"9 -9 -87", "9 -9 654", "9 -9 +654", "9 -9 -654", "9 87 +87", "9 87 -87",
"9 87 654", "9 87 +654", "9 87 -654", "9 +87 -87", "9 +87 654",
"9 +87 +654", "9 +87 -654", "9 -87 654", "9 -87 +654", "9 -87 -654",
"9 654 +654", "9 654 -654", "9 +654 -654", "+9 -9 87", "+9 -9 +87",
"+9 -9 -87", "+9 -9 654", "+9 -9 +654", "+9 -9 -654", "+9 87 +87",
"+9 87 -87", "+9 87 654", "+9 87 +654", "+9 87 -654", "+9 +87 -87",
"+9 +87 654", "+9 +87 +654", "+9 +87 -654", "+9 -87 654", "+9 -87 +654",
"+9 -87 -654", "+9 654 +654", "+9 654 -654", "+9 +654 -654", "-9 87 +87",
"-9 87 -87", "-9 87 654", "-9 87 +654", "-9 87 -654", "-9 +87 -87",
"-9 +87 654", "-9 +87 +654", "-9 +87 -654", "-9 -87 654", "-9 -87 +654",
"-9 -87 -654", "-9 654 +654", "-9 654 -654", "-9 +654 -654", " 87 +87 -87",
" 87 +87 654", " 87 +87 +654", " 87 +87 -654", " 87 -87 654",
" 87 -87 +654", " 87 -87 -654", " 87 654 +654", " 87 654 -654",
" 87 +654 -654", " +87 -87 654", " +87 -87 +654", " +87 -87 -654",
" +87 654 +654", " +87 654 -654", " +87 +654 -654", " -87 654 +654",
" -87 654 -654", " -87 +654 -654", "654 +654 -654"]
xs.each{|x| printf("%15s: %s\n", x, x.scan(pattern).inspect) }
結果:
9: ["9"]
+9: ["+9"]
-9: ["-9"]
87: ["87"]
+87: ["+87"]
-87: ["-87"]
9 87: ["9", "87"]
9 +87: ["9", "+87"]
9 -87: ["9", "-87"]
+9 87: ["+9", "87"]
-9 87: ["-9", "87"]
+9 +87: ["+9", "+87"]
-9 +87: ["-9", "+87"]
-9 87: ["-9", "87"]
9 +9 -9: ["9", "+9", "-9"]
9 +9 87: ["9", "+9", "87"]
9 +9 +87: ["9", "+9", "+87"]
9 +9 -87: ["9", "+9", "-87"]
9 +9 654: ["9", "+9", "654"]
9 +9 +654: ["9", "+9", "+654"]
9 +9 -654: ["9", "+9", "-654"]
9 -9 87: ["9", "-9", "87"]
9 -9 +87: ["9", "-9", "+87"]
9 -9 -87: ["9", "-9", "-87"]
9 -9 654: ["9", "-9", "654"]
9 -9 +654: ["9", "-9", "+654"]
9 -9 -654: ["9", "-9", "-654"]
9 87 +87: ["9", "87", "+87"]
9 87 -87: ["9", "87", "-87"]
9 87 654: ["9", "87", "654"]
9 87 +654: ["9", "87", "+654"]
9 87 -654: ["9", "87", "-654"]
9 +87 -87: ["9", "+87", "-87"]
9 +87 654: ["9", "+87", "654"]
9 +87 +654: ["9", "+87", "+654"]
9 +87 -654: ["9", "+87", "-654"]
9 -87 654: ["9", "-87", "654"]
9 -87 +654: ["9", "-87", "+654"]
9 -87 -654: ["9", "-87", "-654"]
9 654 +654: ["9", "654", "+654"]
9 654 -654: ["9", "654", "-654"]
9 +654 -654: ["9", "+654", "-654"]
+9 -9 87: ["+9", "-9", "87"]
+9 -9 +87: ["+9", "-9", "+87"]
+9 -9 -87: ["+9", "-9", "-87"]
+9 -9 654: ["+9", "-9", "654"]
+9 -9 +654: ["+9", "-9", "+654"]
+9 -9 -654: ["+9", "-9", "-654"]
+9 87 +87: ["+9", "87", "+87"]
+9 87 -87: ["+9", "87", "-87"]
+9 87 654: ["+9", "87", "654"]
+9 87 +654: ["+9", "87", "+654"]
+9 87 -654: ["+9", "87", "-654"]
+9 +87 -87: ["+9", "+87", "-87"]
+9 +87 654: ["+9", "+87", "654"]
+9 +87 +654: ["+9", "+87", "+654"]
+9 +87 -654: ["+9", "+87", "-654"]
+9 -87 654: ["+9", "-87", "654"]
+9 -87 +654: ["+9", "-87", "+654"]
+9 -87 -654: ["+9", "-87", "-654"]
+9 654 +654: ["+9", "654", "+654"]
+9 654 -654: ["+9", "654", "-654"]
+9 +654 -654: ["+9", "+654", "-654"]
-9 87 +87: ["-9", "87", "+87"]
-9 87 -87: ["-9", "87", "-87"]
-9 87 654: ["-9", "87", "654"]
-9 87 +654: ["-9", "87", "+654"]
-9 87 -654: ["-9", "87", "-654"]
-9 +87 -87: ["-9", "+87", "-87"]
-9 +87 654: ["-9", "+87", "654"]
-9 +87 +654: ["-9", "+87", "+654"]
-9 +87 -654: ["-9", "+87", "-654"]
-9 -87 654: ["-9", "-87", "654"]
-9 -87 +654: ["-9", "-87", "+654"]
-9 -87 -654: ["-9", "-87", "-654"]
-9 654 +654: ["-9", "654", "+654"]
-9 654 -654: ["-9", "654", "-654"]
-9 +654 -654: ["-9", "+654", "-654"]
87 +87 -87: ["87", "+87", "-87"]
87 +87 654: ["87", "+87", "654"]
87 +87 +654: ["87", "+87", "+654"]
87 +87 -654: ["87", "+87", "-654"]
87 -87 654: ["87", "-87", "654"]
87 -87 +654: ["87", "-87", "+654"]
87 -87 -654: ["87", "-87", "-654"]
87 654 +654: ["87", "654", "+654"]
87 654 -654: ["87", "654", "-654"]
87 +654 -654: ["87", "+654", "-654"]
+87 -87 654: ["+87", "-87", "654"]
+87 -87 +654: ["+87", "-87", "+654"]
+87 -87 -654: ["+87", "-87", "-654"]
+87 654 +654: ["+87", "654", "+654"]
+87 654 -654: ["+87", "654", "-654"]
+87 +654 -654: ["+87", "+654", "-654"]
-87 654 +654: ["-87", "654", "+654"]
-87 654 -654: ["-87", "654", "-654"]
-87 +654 -654: ["-87", "+654", "-654"]
654 +654 -654: ["654", "+654", "-654"]
これはうまくいくかもしれません:
^[\-\+\s]*[0-9\s]+$