Как изменить регулярное выражение так, чтобы оно совпадало с определенными числами? - PullRequest
2 голосов
/ 11 февраля 2012

Как мне изменить это регулярное выражение так, чтобы 0 не совпадало, а число как 15.0 было?Смотри: http://rubular.com/r/8OMVYh0SBw. Я не могу понять это.Regex - моя Ахиллесова пята.

^[+-]?(?:(?!0)\d{1,2}|0)(?:\.5)?$

К вашему сведению - все, что находится над пунктирной линией, должно совпадать, а все, что ниже, не должно совпадать.

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

Это прекрасно работает для меня.

Рубуляр

^[+-]?(?:[1-9]\d?)(?:\.\d)?$

В будущем следующие два эквивалентны, но последний более эффективен.

(?!0)\d{1,2}    
[1-9]\d?
0 голосов
/ 11 февраля 2012

Может быть, вы хотите что-то вроде этого:

^[+-]?(?!0+(?:\.0)?$|0)\d{1,2}(?:\.\d)?$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...