![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
Доброе время суток!!!
вся тема состоит в том что нужно вытащить текст из строки указав что этот текст находится между какими то символами!!! вот сама строка ФИО руководителя</td><td> Фамилия Имя Отчество</td> вот моя регулярка $name = '/(ФИО руководителя\s<\/td><td>)[А-Яа-я]{1,}\s[А-Яа-я]{1,}\s[А-Яа-я]{1,}(?=<\/td>)/'; ФИО руководителя</td><td> - находится в левой части от искомой строки. </td> - находится в правой части искомой строки [А-Яа-я]{1,}\s[А-Яа-я]{1,}\s[А-Яа-я] а это я пытался указать что там три слова русских и между ними пробел! прошу строго не судить регулярные выражения плохо знаю по статьям по примерам что то сам пытался сделать! заранее благодарю! |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 1 Всего: 50 |
|
|||
|
||||
Цербер |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
amg
что то не работает почему то =( |
||||
|
|||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 1 Всего: 50 |
Работает
|
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
amg
Огромнейшее спасибо! действительно работает! а у меня ещё такая задачка появилась также между символами нужно вытащить номера телефонов если этот номер там один не проблема у меня получается всё нормально! а если их больше и они разделяются "," или другими сепараторами как задать такой шаблон?? заранее благодарствую!!! $tel = '|Телефоны\s*</td>\s*<td>\s*(\s*\[0-9]*\S*\s*\[0-9]*\S*\s*\[0-9]*\s*)\s*</td>|'; не работает=( Это сообщение отредактировал(а) Цербер - 14.5.2008, 14:26 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 1 Всего: 50 |
Как то так
|
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
amg
дело в том что числовое значение могут иметь не только телефоны поэтому опять же нужно вытащить их между какими то символами в данном случае это: Телефоны</td><td> - начало строки 2918043, 2833939, 1200055 - искомый текст </td> - конец строки я ещё вот такой вариант использовал но не работает=(
Это сообщение отредактировал(а) Цербер - 14.5.2008, 15:15 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 1 Всего: 50 |
Весь вопрос в том, какие еще данные, кроме собственно телефонов, могут быть внутри тэга. В неблагоприятном случае задачу проще решать в два шага: сначала выкусить содержимое тэга, и в нем поискать что-то похожее на номера телефонов. Допустимые номера телефонов см. выше.
Это сообщение отредактировал(а) amg - 14.5.2008, 15:51 |
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
amg
и ещё раз спасибо за оказанную помощь! хоть немного стал въежать в тему с регуляркой=) |
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
amg
есть небольшая загвостка в
он уже в массиве $phones содержит телефоны, в номере последнего отсутствует последняя цифра=( |
|||
|
||||
Druidik25 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 27.1.2005 Где: Киев, Украина Репутация: нет Всего: нет |
А если к переменной где храниться телефоны добавить один символ в конце.
Мож регулярка откидывает символ? Добавь в переменную пробел в конце например... И попробуй выкинуть все переносы строк... Тама тож может быть загвоздка. Это сообщение отредактировал(а) Druidik25 - 15.5.2008, 11:53 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 1 Всего: 50 |
Да, так оно и происходит - мой недосмотр. ((?:.(?!</td>))+) означает "захватываем любые символы, после каждого из которых не следует </td>". Символ, находящийся непосредственно перед </td>, этой регулярке, естественно, не подходит - и не захватывается. Надо его добавить: ((?:.(?!</td>))+.) - и будет лучше.
Это сообщение отредактировал(а) amg - 15.5.2008, 13:11 |
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
amg, Druidik25
благодарю за проявленное внимание к моей проблеме! пометка "решённый" ![]() Это сообщение отредактировал(а) Цербер - 15.5.2008, 13:41 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |