2

01, 03, 05-08, 10次のようなものに一致するが一致しないRegExp を作成しようとしています01, 03, 05-08,(シーケンスは数字で終わる必要があるため)。

したがって、基本的に私の「文字列」は/(\-?\d+)\-(\-?\d+)/(01-05 または -5-10 など) で構成され、このパターンのすべてのインスタンスはコンマで区切られています。

RegExr で長い時間を試しましたが、問題の解決策が見つかりませんでした。これが私の試みです:http://regexr.com?34hh1

RegExp を使用して、SEQUENCE_EXP.test('some string') を実行したいと考えています。

4

5 に答える 5

1

このパターンを試してください。これは、指定したとおりの正確な要件です

^(-?\d+(--?\d+)?,\s?)*-?\d+(--?\d+)?$

ライブデモ: http://regexr.com?34hhp

于 2013-04-15T15:47:10.597 に答える
0

したがって、有効な数値\d+と2 つのパターンがあります。\d+-\d+

だからあるにNUMBER_PATTERN違いない\d+(-\d+)?

そしてシークエンスNUMBER_PATTERN[, NUMBER_PATTERN]*

これはどうですか:

/\d+(-\d+)?(, \d+(-\d+)?)*$/

http://regexr.com?34hhjをご覧ください

于 2013-04-15T15:46:00.627 に答える
0

$演算子を使用して、文字列が式で終わる必要があることを示すことができます。あなたの場合、あなたは試すことができます:

/^((-?\d+(-\d+)?)\s*,\s*)+(-?\d+(-\d+)?)$/

-角括弧の外側をエスケープする必要はないことに注意してください。

于 2013-04-15T15:42:30.340 に答える
0

この正規表現はあなたのために働くはずです:

^(?:\d+(?:-\d+)?,)*\d+$

ライブデモ: http://www.rubular.com/r/QTnbqncycZ

于 2013-04-15T15:53:22.440 に答える