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+