Помогите с регуляркой


Dram
225

Есть два варианта данных:

страна-%

и просто страна

не получается их захватить + я еще хочу и процент с тире в отдельный элемент вынести

https://regex101.com/r/ZhPUp2/1

———- Добавлено 31.03.2020 в 10:19 ———-

Вот так работает как мне надо, но только не цепляет пустые страны без процента

^(.*)(-(\d{2}%))

———- Добавлено 31.03.2020 в 10:21 ———-

ппц. магия серча…

вроде придумал

^(.*)(-(\d{2}%))|^(.*)$


ArbNet

https://regex101.com/r/ZhPUp2/2


Dram

ArbNet:
https://regex101.com/r/ZhPUp2/2

Вы не поняли — пустые страны мне тоже нужны, но я уже придумал спс


ArbNet

Dram, там не показывает захват цифр с процентами если делаешь так чтобы страны с числами и процентами группы захвата показывало

например:

^(.*)(-\d+%)? или так ^(.*)-?(\d+%)? или ещё так ^(.*)-?(\d+)?%?

в PHP и др. языках в матч должны быть группы захвата 🙂


ivan-lev

Dram:
^(.*)(-(\d{2}%))|^(.*)$

Dram, проверьте, что случится на <10%

^(.*)-?(\d+%)?$


Sitealert

ivan-lev:
d+

Ну 146% тоже не будет. 🙄


ivan-lev

Sitealert:
Ну 146% тоже не будет.

Перелогиньтесь, господин Ч*ров!.. 😂

* Как минимум (или, скорее как максимум), 100 вполне может быть.. 😉

Если занудствовать, можно ограничить {1,3}

Если ещё сильнее — то (\d{1,2}|100)

Но вопрос проверки корректности изначальных данных не стОит, а посыл был про некорректную обработку в регулярке ТС-а для некоторых корректных данных


ivan-lev

ivan-lev:

^(.*)-?(\d+%)?$

Да, в модификаторах не забыть Ungreedy gmU

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *