Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » регулярные или както еще?

Ответить
Настройки темы
регулярные или както еще?

Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: E-mail
Дата: 19-03-2005
Описание: орфография
а как выцепить из текста, в масив, все теги button с атрибутом disabled и все что между ним (<button disabled>все что между ним</button>)?

причем таких тегов может быть очень много и все они могут содержать дополнительные совершенно не одинаковые атрибуты или вообще без атрибутов: <button disabled>g</button>kl<button disabled></button>jghjklh <button value=23432 size=fgkjheop color=kjjkh disabled></button>

нужно все вывести в массив...

т.е.
$mass[]="<button disabled если_есть_атрибуты>если_чтото_было_между_ним</button>";

подскажите как плызз..

Отправлено: 16:26, 19-03-2005

 

Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


В своё время мне помогла разобраться в рег.выражениях эта статья http://detail.phpclub.ru/article/regexp_1

-------
Информационный бизнес двоичен, или 1 или 0, или жизнь или смерть


Отправлено: 18:16, 19-03-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Примерно так:

preg_match('/<button.*?disabled>(.*)?<\/button>/',$text, $mass)

в mass[1] все что между тэгами.

в php 4-ой версии, однако, конструкция с вопросительным знаком .*? и (.*)? очень глючно работает (по сравнению с Перлом). поэтому в mass[1] может оказаться и мусор.

Последний раз редактировалось mrcnn, 19-03-2005 в 21:39.


Отправлено: 21:23, 19-03-2005 | #3


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


scazy замечательная ссылка,только много ошибок, я там комментарий оставил, промодерируется высветится.

mrcnn а если я хочу отдельно получать контент между тегом и весь тег с контентом в разные массивы?..


-------
Основы HTML | Конференции


Отправлено: 21:40, 19-03-2005 | #4


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


и зачем сдесь обратный слеш?..
>(.*)?<\/button

-------
Основы HTML | Конференции


Отправлено: 21:42, 19-03-2005 | #5


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


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

Значение точки в регулярных выражениях - 1 любой символ . Если я хочу , чтобы скрипт воспринимал ее только как точку (а не как любой символ), то надо поставить перед ней обратный слэш.

На 1 вопрос: точно не знаю. Можно попробовать использовать цикл и создание динамических переменных с именем, в который включается счетчик.

-------
Ehhh.. what's up, doc?..


Отправлено: 03:41, 20-03-2005 | #6


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


mrcnn
спасиб большое
пятью часами бы раньше, хех
я вот так сделал:
PHP код: Выделить весь код

preg_match_all("/(<button[^>]*disabled>[^>]*<\/button>)/",$in$mass); 


и считываю из масива $mass[1]

PHP код: Выделить весь код

echo "<textarea cols=20 rows=20>";

foreach(
$mass as $i)
echo 
$i."\n";
echo 
"</textarea>"

самое интересное что со знаком вопроса не работает.
и вообще что ето такой за знак вопроса? читал что обозначает любое определенное количество символов и метасимволов. но както это определение не внушает:/

-------
Основы HTML | Конференции


Отправлено: 04:43, 20-03-2005 | #7


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата:
самое интересное что со знаком вопроса не работает.
и вообще что ето такой за знак вопроса? читал что обозначает любое определенное количество символов и метасимволов. но както это определение не внушает:/
Знак вопроса обозначает, что символ перед знаком вопроса встречается один или ноль раз
Например, на той запрос: ранн?ий, функция регулярок примет следущие два варианта правильными: раний, ранний

-------
Fortes fortuna adiuvat


Отправлено: 20:16, 20-03-2005 | #8


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


vadimiron
а плюс тогда что??
{1,} ?

-------
Основы HTML | Конференции


Отправлено: 23:38, 20-03-2005 | #9


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


+ означает, что предыдущий сомвол повторяется один или большее число раз
{min,max} - задаёт диапозон повторения, то есть от min до max, может также только одно значение быть, например {min,} или {,max}, то есть в данном конкретном случае {1,} обозначает тоже самое, что и +

-------
Fortes fortuna adiuvat


Отправлено: 00:38, 21-03-2005 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » регулярные или както еще?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Router - [решено] Проблема с кабелем или чем то еще... NADVooDoo Сетевое оборудование 5 28-12-2008 16:55
Дергается изображение. Виновата видеокарта или чтото еще ? Shiroky Непонятные проблемы с Железом 7 25-08-2008 20:34
Одна из программ или еще что-то просится в интернет SHVV Лечение систем от вредоносных программ 12 08-06-2008 00:14
Блок питания ? или еще что то PLATON Непонятные проблемы с Железом 13 08-09-2007 22:14
AD не запоминает пароли или еще че-то Lui Microsoft Windows NT/2000/2003 1 18-05-2006 16:10




 
Переход