2016-08-09 7 views
1

の終わりに、オプションのパターンを繰り返すことで、私は繰り返しパターンに一致するように、この正規表現を持っている:9:9;(数字の1セット)または12:2;4:9;メイクに必要な文字だけの文字列

/([0-9]{1,2}:[0-9]{1,2};)+/ 

それはのような文字列と一致します(数字の2つのセット)または5:2;7:7;5:2;(数字の3つのセット)などです。

これまでのところ良いですが、セミコロンで各セットを区切る必要がありますが、行の最後にある場合はオプションですが、だから私はこれを両方とも受け入れることが必要です:5:2;7:7;5:2;とこれ:5:2;7:7;5:2。これは9:9;とこれは9:9です。

これはどのように達成できますか?

+0

私はRegexを求めてきましたが、これもPHPとしてタグ付けしました。どうして '$ numbers = explode( ';'、$ setOfNumbers);' – haz

答えて

1

あなたは(;|$)を使用することができますので、終了;あなたが(?:;|$)を使用することができます;を取り込む避けるために

/([0-9]{1,2}:[0-9]{1,2}(;|$))+/ 

オプションです。
?:あなたがのために行くことができるnon-capturing group

+0

それは完璧です。ありがとうございました! 3分で受け入れます。 –

1

です:

^(\d{1,2}:\d{1,2};?)+$ 

a demo on regex101.comを参照してください。それはそこに、^$ある場合;?はセミコロンと一致する
\d試合0-9は、ラインのアンカーです。

関連する問題