как сделать и не в регах

_RVK_

Новичок
как сделать и не в регах

Вот есть в регулярных выражениях | те или. А как сделать "и не"
Мне надо парсить хтмлную страницу, выбрать всё что подходит по шаблону но кроме каких-то определённых те есть что то типа
PHP:
'(<b>.*?</b>|<a.*?>.*<.a> но не <b>title</b> и не <a.*?>Name</a>)'si
 

Georgy

Guest
Код:
$string='<a xuz>Name</a> <a HE>fdnifvdisv</a> <b>title</b> <b>dscjosdcma</b> <a NYDETY>vcdbv</a> <b>cbsuhba</b>';
if (preg_match("/<b>([^title]{0,})<\/b>/i",$string,$match)) {
	print $match[1];
}
if (preg_match("/<a.*?>([^Name]{0,})<\/a>/i",$string,$match)) {
	print $match[1];
}
 

_RVK_

Новичок
А только регами как сделать? Просто страниц много но для каждой только одно регулярное выражение. Метод парсинга должен быть универсальным для всех.
 

Georgy

Guest
так что тебе нужно? удалять? искать? что?
 

Demiurg

Guest
примерно так:
!(<b>(?!title).*</b>)|(<a.*>(?!Name).*</a>)!Usi
 

Georgy

Guest
только <a.*>Name</a> and <b>title</b>? - заносить в базу?

ты конкретнее вопросы задавай.
 

_RVK_

Новичок
Наоборот это не надо. только всё остальное.
!(<b>(?!title).*</b> )|(<a.*>(?!Name).*</a> )!Usi
А это я тоже не понял... Для чго '!' ? Странно то что он и в выражении встречается и его ограничивает. Насколько знаю так нельзя. НО ВЕДЬ РАБОТАЕТ! только ограничил апострофами.... Спасибо Demiurg!
 

Demiurg

Guest
>то что выделено - эт что за зверть?
Это особенности перловых регов. Подробности в мануале.
 
Сверху