Мне нужно сопоставить серию цифр длиной от 5 до 7 символов. Я думал, что это поможет:
([0-9]{5,7})\w+
Против этой строки:
Sample text for testing: 22 333 4444 55555 666666 7777777
Как вы можете видеть в примере regexr, он не соответствует цифрам, имеющим 5 чисел, и соответствует цифрам длиннее 7 числа длинные.
Почему это не работает так, как я ожидал?
2 ответа
он не соответствует цифрам, имеющим 5 номеров, и соответствует цифрам, длина которых превышает 7 цифр.
Обратите внимание, что следующий \w+
также будет соответствовать цифрам. ([0-9]{5,7})\w+
ожидает 5,6,7 цифр плюс хотя бы один символ слова. Но сразу после 55555
не существует словесного символа. Таким образом, он не может соответствовать 55555
в вашей строке ввода.
Регулярное выражение ([0-9]{5,7})\w+
не работает должным образом, потому что:
Пример-строка: 12345
([0-9]{5,7})\w+
^ Matches the digits: 12345
([0-9]{5,7})\w+
^ Cannot match a word character (letter, digit, underscore)
Пример-строка: 123456789
([0-9]{5,7})\w+
^ Matches the digits: 1234567
([0-9]{5,7})\w+
^ Matches the digits: 89
Чтобы сопоставить число от 5 до 7 цифр, используйте:
\b\d{5,7}\b
\b ....... matches at the beginning or end of a word.
\d{5,7}... matches a digit in the range of 0-9 between 5 and 7 times.
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.