#javascript #regex
Вопрос:
Я пытаюсь получить все от начала до конца последнего телефонного номера (короче говоря, всю контактную информацию по электронной почте и телефонам).
'Firstname Lastname lorem@gmail.com 0000243598 CAB pilote 001 001',
'Firstname Lastname lorem@gmail.com 0100753503 CAB pilote 001 001',
'Firstname Lastname lorem@gmail.com 0033555381 0022243578 CAB pilote 001 001',
'Firstname Lastname lorem@gmail.com 0400253598 0000664248 CAB pilote 001 001',
До сих пор у меня уже есть пользовательское решение длиной 10 футов, но я ищу что-то элегантное в духе d{10,}(.*)$
tho, когда у пользователя есть 2 номера телефонов, он не может получить оба.
Я надеялся выделить «все» после последнего появления, по крайней мере, строки из 10 чисел, но не смог этого сделать. Любая помощь приветствуется.
https://regex101.com/r/R32xC0/1
То regex
, что должно быть против номера телефона, время от времени содержит информацию, которая появляется после последнего изменения длины и содержания номера телефона.
Ответ №1:
Вы можете использовать это регулярное выражение в PCRE:
.*hKd{10,}[^']*
Демонстрация регулярных выражений
Сведения о регулярном выражении:
.*
: Совпадение 0 или более любых символов (жадное совпадение)h
: Сопоставьте пробелыK
: Сбросить совпадениеd{10,}
: Сопоставьте 10 или более цифр[^']*
: Совпадение 0 или более символов, не являющихся'
символами.
PS: Если PCRE не поддерживается, используйте группу захвата:
.*s(d{10,}[^']*)
Комментарии:
1. Похоже, что второй номер телефона не указан. Я ищу способ добраться
Firstname Lastname lorem@gmail.com 0033555381 0022243578
иFirstname Lastname lorem@gmail.com 0000243598
. И я виноват, что не упомянул, что я ищуjavascript
решение для регулярных выражений.
Ответ №2:
Если я правильно все читаю, и вы хотите
Я пытаюсь получить все от начала и до конца последнего телефонного номера
Затем вы можете сопоставить '
начало строки и фиксировать до последнего вхождения 10 или более цифр в группе 1.
^'(.* d{10,})
Демонстрация регулярных выражений
const regex = /^'(.* d{10,})/gm;
const str = `'Firstname Lastname lorem@gmail.com 0000243598 CAB pilote 001 001',
'Firstname Lastname lorem@gmail.com 0000243598 CAB pilote 001 001',
'Firstname Lastname lorem@gmail.com 0000243598 0000243598 CAB pilote 001 001',
'Firstname Lastname lorem@gmail.com 0000243598 0000243598 CAB pilote 001 001',`;
console.log(Array.from(str.matchAll(regex), m => m[1]));
Если кавычки не являются частью строки, то вы можете опустить группу:
^.* d{10,}