[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с регуляркой
major28
Здравствуйте!
У меня есть два рода ссылок
<a href="бла бла" >test</a>

и
<a href="бла бла" onClik="бла бла">test</a>


нужно составить регулярку поиска ссылок где нет тега onClick, тоесть регулярка должна выбрать только первую ссылку. Заранее спасибо!



Спустя 10 минут, 5 секунд (3.11.2011 - 17:25) caballero написал(а):
ищи просто ссылки
а неподходящие выкусишь обычной strpos

Спустя 5 минут, 56 секунд (3.11.2011 - 17:31) major28 написал(а):
не не, мне нужно с помощью текстового редактора найти все ссылки без onclick

Спустя 12 минут, 37 секунд (3.11.2011 - 17:43) m4a1fox написал(а):
major28
Цитата
с помощью текстового редактора

не понятно как-то... а вообще Ctrl+F biggrin.gif

Спустя 5 минут, 1 секунда (3.11.2011 - 17:48) major28 написал(а):
да блин, у меня 5000 ссылок в 500 файлах, мне нужно с помощью текстового редактора сделать поиск с помощью регулярок и найти все ссылки в файлах где нет onclick.

Спустя 1 минута, 15 секунд (3.11.2011 - 17:50) major28 написал(а):
пробовал <a(.*?)(?!onСlick)(.*?)</a> нихера не работает, эта регулярка находит все ссылки и с onclic и без

Спустя 4 минуты, 58 секунд (3.11.2011 - 17:55) m4a1fox написал(а):
major28
Спокойствие, только спокойствие! Вы написали с помощью текстового редактора, я и ответил! Не понимаю как это....

Спустя 1 минута, 37 секунд (3.11.2011 - 17:56) major28 написал(а):
Я почти спокоен))) В dreamweaver'е или в notepad'e есть поиск (ctrl + F) с помощью регулярок) короче от вас мне требуется помощь лишь в состовлении регулярки)

Спустя 14 минут, 10 секунд (3.11.2011 - 18:10) major28 написал(а):
все отбой))) сам нашел решение)
вот кому интересно
<a(?!(.*)onclick)(.*)>

Спустя 42 минуты, 59 секунд (3.11.2011 - 18:53) Winston написал(а):
Цитата (major28 @ 3.11.2011 - 17:10)
вот кому интересно
<a(?!(.*)onclick)(.*)>

И у тебя она работает? :blink: У меня, нет.
(.*) - нельзя использовать в опережающей или ретроспективной проверке

Свернутый текст
$str = '<a href="бла бла" >test</a> <a href="бла бла" >test</a>
<a href="бла бла" >test</a> <a href="бла бла" >test</a>
<a href="бла бла" >test</a> <a href="бла бла" >test</a>
<a href="бла бла" onClick="бла бла">test</a>
<a href="бла бла" onClick="бла бла">test</a>
<a href="бла бла" onClick="бла бла">test</a>
<a href="бла бла" onClick="бла бла">test</a>
<a href="бла бла" onClick="бла бла">test</a>
<a href="бла бла" onClick="бла бла">test</a>'
;

preg_match_all('#<a.*"\s(?!onclick)>(.*)</a>#isuU', $str, $match);
echo '<pre>'.htmlspecialchars(print_r($match,1)).'</pre>';

Результат

Свернутый текст
Array
(
[0] => Array
(
[0] => <a href="бла бла" >test</a>
[1] => <a href="бла бла" >test</a>
[2] => <a href="бла бла" >test</a>
[3] => <a href="бла бла" >test</a>
[4] => <a href="бла бла" >test</a>
[5] => <a href="бла бла" >test</a>
)

[1] => Array
(
[0] => test
[1] => test
[2] => test
[3] => test
[4] => test
[5] => test
)

)

Спустя 1 день, 21 час, 2 минуты, 30 секунд (5.11.2011 - 15:56) major28 написал(а):
Цитата
(.*) - нельзя использовать в опережающей или ретроспективной проверке

подробнее плиз
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.