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

для меня это потому, что раньше я запускал скрипт, который устанавливал прокси (для скрипача), снова открывал консоль или перезагружал исправление проблемы.

0
задан Tornike Shavishvili 13 July 2018 в 14:07
поделиться

1 ответ

Прежде всего, ваше регулярное выражение содержит unquantified \d и соответствует только одиночным цифрам. Вам нужно добавить + после \d, чтобы соответствовать 1 или более цифрам.

Чтобы избежать дублирования значений, вы можете использовать

^(?!.*\b(\d+)\b.*\b\1\b)\d+(?:,\d+)*$
 ^^^^^^^^^^^^^^^^^^^^^^^

См. Регулярное выражение demo

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

Подробности

  • ^ - начало строки
  • (?!.*\b(\d+)\b.*\b\1\b) - a отрицательный результат, который не соответствует совпадению, если идентичные значения появляются в тексте
  • \d+ - 1 + цифры
  • (?:,\d+)* - ноль или более вхождений , - запятая \d+ - 1 + цифры
  • $ - конец строки.
1
ответ дан Wiktor Stribiżew 17 August 2018 в 13:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: