Regex в соответствии с необязательным символом "+", за которым следует любое количество цифр

Я хочу, чтобы регулярное выражение соответствовало строке, которая может начинаться с символа плюс или не начинаться с символа плюс, а затем содержать любое количество цифр.

Те должны быть сопоставлены

  +35423452354554
  or
  3423564564

Ответ 1

Это должно работать

\+?\d+

Соответствует необязательному + в начале строки и цифры после него

EDIT:

По запросу OP запроса: 3423kk55 сопоставляется, потому что это первая часть (3423). Для соответствия целой строке используйте это вместо этого:

^\+?\d+$

Ответ 2

Он будет выглядеть примерно так:

\+?\d+

\+ означает знак буквального плюса, ? означает, что предыдущая группа (знак плюса) может отображаться 0 или 1 раз, \d указывает символ цифры, а заключительный + требует, чтобы предыдущая группа (цифра) появляется один или несколько раз.

EDIT: При использовании регулярных выражений помните, что существует разница между поиском и совпадением (по крайней мере, в Java, хотя большинство реализаций регулярных выражений имеют похожие методы). find найдет подстроку где-то в собственной строке, и совпадения будут пытаться сопоставить всю строку с шаблоном, если не будут добавлены дополнительные символы до или после. Убедитесь, что вы используете правильный метод, и помните, что вы можете добавить ^, чтобы заставить начало строки и $ принудительно закрыть конец строки (все изображение выглядит как ^\+?\d+$.

Ответ 3

Простой ^\+?\d+$

Стартовая строка, затем 1 или 0 плюс знаки, за которыми следует не менее 1 цифры, затем конец lnie

Ответ 4

Регулярное выражение Perl для него может быть: \+?\d+