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

Как получить первое попавшиеся число не начинающиеся с 2000000 ?

Дано

2000000116112, 20000004872, 6934177705021, 98343434, 234222, 2000002343574

Нужно получить

6934177705021

Это нужно для гугл таблицы для функции REGEXEXTRACT

Ребята из чата https://t.me/contributor_pw_chat подсказали ответ.

РЕШЕНИЕ

REGEXEXTRACT(REGEXREPLACE(O4:O; "(?:^|, )20000\d*";); "\d+")

Ответы (2 шт):

Автор решения: PotroNik
(\b(?!2000000)\d+\b)

\b - граница слова
(?!2000000) - негативный просмотре вперед
\d+ - один и более символов цифр
\b - граница слова

Пример: regex101.com

А далее уже из полученного результата получить первое значение


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

По пути: Инструменты -> редактор скриптов
Создаем функцию:

function regexmatcher(s) {
  var REGEX = /(\b(?!2000000)\d+\b)/g;
 return s.match(REGEX)[0];
}

В которой используем регулярное выражение из исходного ответа.
Далее на листе вызываем функцию:

=regexmatcher(адрес ячейки с данными)

Для примера: Пример работы

→ Ссылка
Автор решения: Wiktor Stribiżew

Используйте

REGEXEXTRACT(O4:O; "(?:^|,\s)((?:[013-9]\d{4}|\d[1-9]\d{3}|\d{2}[1-9]\d{2}|\d{3}[1-9]\d|\d{4}[1-9])\d*)")

См. пример работы выражения.

Подробности

  • (?:^|,\s) - незахватывающая подмаска (используется только для группировки шаблонов): или начало строки, или запятая и пробел после неё
  • ((?:[013-9]\d{4}|\d[1-9]\d{3}|\d{2}[1-9]\d{2}|\d{3}[1-9]\d|\d{4}[1-9])\d*) - Захватывающая подмаска (находит возвращаемый текст):
    • (?:[013-9]\d{4}|\d[1-9]\d{3}|\d{2}[1-9]\d{2}|\d{3}[1-9]\d|\d{4}[1-9]) - (незахватывающая подмаска) несколько шаблонов, которые по очереди исключают каждую последующую цифру в числе 20000 (5 цифр, 5 альтернатив):
      • [013-9]\d{4}| - цифра, отличная от нуля, и затем четыре цифры
      • \d[1-9]\d{3}| - цифра, затем цифра, отличная от нуля, и затем три цифры или
      • \d{2}[1-9]\d{2}| - две цифры, цифра, отличная от нуля, и две цифры
      • \d{3}[1-9]\d| - три цифры, затем цифра, отличная от нуля, затем одна цифра или
      • \d{4}[1-9] - четыре цифры и затем цифра, отличная от нуля
    • \d* - ноль и более цифр.
→ Ссылка