2017-06-14 26 views
-2

数字が0で始まらない正規表現が必要です。正規表現ではシーケンスに ".0"を使用できません。
例:1.0, 1.0.1, 1.1.0数字が0から始まらない数値の正規表現

しかし、このシーケンスは許可されている
例:1, 1.10, 1.10.1

私が試してみました正規表現は、この([1-9]|([1-9]+)+(\.[1-9]+))$

で、出力はそれが2まで失敗したということです ""それ以降は失敗します。たとえば、1.0.0まで失敗します。しかしそれは、ポスターで説明するよう1.0.0.2

+0

私はあなたが何を意味しているのか知っていると思いますが、 '1.10.101.11.10.1'は10進数ではなく、どちらも' 1.1.0'ではありません。どちらも数字とドットを使用していますが、それは10進数にはなりません。より正確にする必要があります。 –

+1

あなたの質問は...? – EJoshuaS

+1

あなたはこれまでに何を試しましたか? – Brydenr

答えて

2

で答えに私のテイクが

([1-9][0-9]*)(\.([1-9][0-9]*))* 

だろうそれは、まさに各整数が0で始まらない、ピリオドで区切られた一連の整数を選択マッチします一致します

アプリケーションで行の先頭に選択が必要な場合は、カレット(^)を正規表現の最初の文字として追加することをおすすめします。

+0

ここで何が起こっているのか理解するのを助けるために、以下の疑似コードで説明した行を示しました。 1から9までの数字を見つける 0から9までの数字を0から9まで見つける ループ 期間を確認してください。見つかった場合は、開始コードを に戻して、0以外の数字と0〜9の間の0以上の数字を検索してください。 上記が失敗した場合は、ループを停止してください。 – gsharpe

関連する問題