В столбце excel возможен текст, в котором есть телефоны по шаблону:
8 (00000) 0-00-00
000-000-00-00
8 (000) 000-00-00
8 000 000 00 00
8 (000) 000 00 00
8-000-000-00-00
8000-00-00-000
000000
00 00 00
00-00-00
0-00-00
00000
900-100-0000
8-000-000-0000
8(000-0) 00-00-00
0000000000
Во всех случаях возможна: 8, 7, +7, отсутствие "первой цифры"(кроме 5-и и 6-ти значных телефонов). Бывают ситуации когда за телефоном следует другой, через "," или "." или простой "пробел".
Вообщем телефоны Российские, но в перемешку с адресами.
По идее надо разделить телефоны в 1 колонку, остальное(адрес) в другую.
Вообще сиё действие происходит в Excel, но: в Notepad++ можно регуляркой удалить - оставив адрес - его в 1 колонку скопировать(строки он не смешает, если они не смешаются при манипуляциях в самом блокноте), а потом также с телефонами - в другую колонку.
Если как удалить адрес и получить колонку с телефонами - ещё можно извернутся(Удалить все буквы, буквы с цифрами, и лишние запятые - несколько проходов), а как наоборот - фиг знает.
Собственно: нужна регулярка которая будет реагировать на телефоны.
Жадной регуляркой \d[\d() -]+\d просто вынимаешь последовательность цифр, разбавленную исключительно скобками, тире и пробелами. https://regex101.com/r/cYXAwZ/1
Очищаешь от нецифр. Проверяешь, что в результате не менее 5 цифр. А там уже решай, что вытащил - телефон или что-то иное...
Akina, почти идеально. Вытаскивает числа "304", т.е. не телефон, номер дома/офиса. Вообщем: как ему минимум чисел задать?(если в строке меньше 4 чисел - это не наша строка)
47911, можешь показать пример одного вывода в ручную. Чтобы я понял что тебе надо(что нужно удалить, что нужно взят целым, и что нужно взят частично). А то я совсем запутался. И я здесь не вижу адреса:
Собственно: нужна регулярка которая будет реагировать на телефоны.
Тебе нужен регулярка для выделение только телефонных номеров? По-моему в списке который ты предоставил только телефонные номера. Можешь предоставить кусок списка который нужно извлечь все это. Можешь изменить имена номера на фейковый если не хочешь предоставить настоящий информацию
00 00 00, 00 00 00, Какой-то район, с. ус-ыыы, ул. Советская, 00а, 304
000-000-00-00, 8(000-0) 00-00-00 Какой-то район, с. ус-ыыы, ул. Советская, 00а
00-00-00, 7 (000) 000-00-00, Какой-то район, с. ус-ыыы, ул. Советская
00 00 00, 900-100-0000 Какой-то район, с. ус-ыыы, ул. Советская, 00а, 304
Из него надо достать и разделить телефоны и адреса.
Пока регурярка достаёт ещё и "304". Это последнее что нужно учесть.
Подразумевается: что телефоны отделены либо пробелом, либо запятой, либо точкой.
Но бывает 1-2 случая когда слитно с буквами(адресом).
Спасибо. Но вопрос, который возник после первого коммента так и "висит в воздухе": как исключить попадание "трёх значного числа" в список "телефоны"? "трёхзначное число" находится среди адреса: ближе к концу блока с адресом:
1) Какой-то район, с. ус-ыыы, ул. Советская, 304, 00-00-00, 7 (000) 000-00-00
2) 00 00 00, 900-100-0000 Какой-то район, с. ус-ыыы, ул. Советская, 00а, 304
?
В основном вариант 2, т.к. вариант 1 можно вручную исключить, их там не более 10-20.