受け入れたいし0-9
,
、-
ので、私は持っています:
[0-9-,]+
-
ただし、連続して1 つだけ存在するようにしたいので、 --
. これどうやってするの?
必要なものはこれだと思います:
^\d+(-\d+)?(,\d+(-\d+)?)*$
これが行うことは次のとおりです。
\d+
任意の整数 (1 桁以上)
(-\d+)?
-
a の後に整数が続く任意の部分
(,\d+(-\d+)?)*
,
上記のパターンの組み合わせが続くゼロ以上の出現。
注:必要なエスケープを追加します\
これでよろしいですか ?
^[0-9,]*-?[0-9,]*$
grepで簡単なテストを行いました:
kent$ echo "1-234-
1234-
3-24442-34
12341234"|grep -E '^[0-9,]*-?[0-9,]*$'
1234-
12341234