Условно совпадают, но без лишних пробелов

0

Это регулярное выражение: http://regexr.com/3a9id правильно соответствует:

create 5 pages
create 5

Но он включает в себя пространство, подобное этому: "страницы".

Как я могу избежать этого пространства, но также и для create 5?

Используя это регулярное выражение:

/create ([1-9]{1,3})([^\s]|.*)/ig

См.: http://regexr.com/3a9ij

Бонусный вопрос: как я могу заставить его работать только с положительными целыми числами? т.е. не совпадают при create 0?

  • 0
    #^create ([1-9][0-9]{0,2})$#gm ?
Теги:

2 ответа

1
Лучший ответ

Может быть, вот так:

/create ([1-9]{1,}(?:[0-9]{0,}))?(.*)/g

Пример: http://regexr.com/3a9iv

([1-9]{1,}(?:[0-9]{0,})) Соответствует одному цифровому номеру (от 1 до 9), а затем следуют другие цифры (чтобы соответствовать номерам> 9) в не захватывающей группы.

?(.*) Соответствует пробелу, если оно присутствует, за которым следует что-либо.

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

только соответствует, если число больше 0.

regex101 demo.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню