powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите с регуляркой
13 сообщений из 38, страница 2 из 2
Помогите с регуляркой
    #39516860
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Не вникал, но вот чтобы тебе перед регуляркой не избавиться от лишниз литералов?
Т.е. оставить только цифры и запятую (как разделитель номеров)
С ними и работать - т.е. отвязаться от "я ж написал что люди не предсказуемы :)"
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39516933
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorТ.е. оставить только цифры и запятую (как разделитель номеров)
там кроме номеров телефонов: id объявления, цена - и это тоже набор цифр.
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39516939
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну пока такой вариант:
Код: plaintext
[\d=-]{1,}[\d-() •]{4,18}
и если в найденной строке попадается "=" или "-", то откидываем
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39516972
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

([^\=,\.][\+]*(\d{1,2})*([\(\s\-])*(\d{3})([\)\s\-])*(\d{2,3})([\s\-])*(\d{2,3})([\s\-])*(\d{2,3}))|([\,\.\s]\d{6,})
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39516975
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39516996
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TREY, нет, не правильно, потому что телефон один, а совпадений 10, какое из совпадений мне использовать?




Должно быть:
один телефон = одно совпадение
пять телефонов - пять совпадений
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39516998
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мало того, образец, слишком сложный для того, чтобы его понять, а если что-то поменять придётся
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39517005
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11TREY, нет, не правильно, потому что телефон один, а совпадений 10, какое из совпадений мне использовать?




Должно быть:
один телефон = одно совпадение
пять телефонов - пять совпадений
легко , йобта
(?:[^\=,\.][\+]*(?:\d{1,2})*(?:[\(?:\s\-])*(?:\d{3})(?:[\)\s\-])*(?:\d{2,3})(?:[\s\-])*(?:\d{2,3})(?:[\s\-])*(?:\d{2,3}))|(?:[\,\.\s]\d{6,})
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39517006
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39517014
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, я знаю, что можно добавить ?:
но это ещё больше усложняет образец
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39517425
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11там кроме номеров телефонов: id объявления, цена - и это тоже набор цифр.Как вариант смотреть на количество цифр
380671234567 - 12
0671234567 - 10
И для городских 6 или 7. Вариант с городским в 5 цифр не рассматриваем, т.к. в 99% случаев перед ним идет еще 5 цифр кода и он сводится к первому или 2 варианту
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39517500
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=_= Да просто берём аналог str_replace и заменяем ( и ) с - на пустоту, и потом парсим нужный текст.

Главное что бы потом получилась 555685,89509911212 ... Тогда проблему со сверкой не будет.

И регулярку можно будет написать так

\b(\d*)\s*\,\s*(89509911212)\b

а если надо два телефона

\b(\d*)\s*\,\s*(89509911212|89501235947)\b

На PHP бы я написал так
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$Phones = array();
$Phones[] = '89509911212';
$Phones[] = '89501235947';

$Regxp = '@\b(\d*)\s*\,\s*('. implode('|', $Phones) .')\b@';

$html = ' 5-ком. квартира - 555685,8-950-991-12-12 Этаж: 5/5,
3-ком. квартира - 75677,8-95-01235-9-47 Этаж: 5/5,
';

$html = str_replace(array('(', ')', '-'), '',  $html);

if(preg_match_all($Regxp, $html, $v)) {
 foreach((array)$v[2] as $i => $Phone)
    echo 'Номер: ' . $Phone . ' Чёт - там: ' . $v[1][$i] . PHP_EOL;
}



Результатом будет
Номер: 89509911212 Чёт - там: 555685
Номер: 89501235947 Чёт - там: 75677

http://sandbox.onlinephpfunctions.com/code/8fc4bf849fdd1452af5aa562f22ada97fdbfd593
...
Рейтинг: 0 / 0
Помогите с регуляркой
    #39517582
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите с регуляркой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]