2

重複の可能性:
文字列に整数とコンマのみを許可する正規表現

コンマで区切られた正の整数のシーケンスに一致する正規表現が必要です。スペースも許可されます。

例えば

706101700102、一致する必要があります700295が、一致し0, 1, 2, 3ない必要があります。

私は使用しようとしまし /^\s*(\d+(\s*,\s*\d+)*)?\s*$/ たが、ゼロも受け入れるようです。

4

4 に答える 4

3

に置き換える(\d+)[1-9]\d*動作します。例えば:

/^\s*[1-9]\d*(?:\s*,\s*[1-9]\d*)*$/

この正規表現は空の文字列で失敗します (元の投稿のものは失敗しません) が、実際にはそれが意図されていると思います。そうでない場合は、最初の「数値部分」をオプションにします。

于 2012-12-24T18:28:40.290 に答える
0

このようなものが機能します。\d主な変更点は、基本的に([0-9])から。への切り替え[1-9]です。

この正規表現では、などの数字を入力することもできます0001

/^(?:0*[1-9]\d*\s*(?:,|$)\s*)+$/gm

言語を指定していないため、フラグが変更される場合があります。これはPCREです。

デモ+説明: http: //regex101.com/r/kN2tW0

于 2012-12-24T18:35:35.323 に答える
0

これを試して

^([1-9]\d*[\s,]*)+$

このREは、文字列内の任意の場所でスタンドアロンの「0」を持つ文字列を完全に削除します。

于 2012-12-25T09:27:38.863 に答える
0

試す:

[1-9][0-9]+( *, *[1-9][0-9]+)*
于 2012-12-24T18:30:45.153 に答える