За последние 24 часа нас посетили 16294 программиста и 1581 робот. Сейчас ищут 1588 программистов ...

Нахождение слов, которые не заключены в заголовки

Тема в разделе "Регулярные выражения", создана пользователем delfin125_1, 6 янв 2015.

  1. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте. Нужно найти слово в тексте, которое не заключено в заголовки (h1,h2,h3,...).
    Слово,допустим:"крылья".
    То есть текст примерно выглядит так:
    <h2>Как накачать крылья</h2>
    Чтобы накачать крылья, нужно...
    <h2>Проблемы в прокачке крыльев</h2>
    Когда мы качаем крылья, нас подстерегают такие проблемы...
    Ещё раз поясняю: надо найти в нём слово крылья, которое не заключено в заголовки.

    Нужно это для того чтобы в итоге все эти слова, которые не в заголовках сделать ссылками.
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    вооружайся регуляркой ;)
     
  3. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Естественно, я и прошу, чтобы мне помогли её составить.)
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    как у тебя она ща выглядит? в чем загвоздка?
     
  5. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Не представляю даже как она должна она должна выглядеть.
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
  7. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Спасибо, я знаю как составлять обычные регулярки, но о этой и представления не имею.
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ахаха. а чем сложная регулярка от простой отличается? регулярное выражение оно потому регулярным и называется потому что у него есть регулярная "математика". если ты можешь математику описать словами то сможешь и регулярным выражением. плюс поищи по форуму - тут регулярно приходят люди которым нужно дом парсить обязательно регулярками. им всем это задание кто-то дает. видимо голоса в голове.
     
  9. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Не мог бы ты мне составить эту регулярку ? Если ты знаешь как это, то это меньше минуты.)
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    сколько?))) ну ты же понимаешь, когда человек ленивый и не хочется учиться то ему можно впарить за бабулес то что у него под носом лежит. и может быть даже не покраснеть от стыда...
     
  11. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Скинь мануалы тогда, которые помогут. Я уже не первый день решения ищу и не сразу в форум пошёл.
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ссылка выше, p@R@dox 55RU уже всё дал. я разве что могу на гугл еще ссылку дать. хотя если ты не первый день ищешь то и не найдешь...
     
  13. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Так поможешь ?
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    delfin125_1, советую почитать свежую книгу по regular expressions (регулярные выражения), чтобы ты сам смог их писать.
    Хотя для разбора html можно использовать DOM, вот пример http://simplehtmldom.sourceforge.net/
    Читай по css селекторы и xpath.
     
  15. delfin125_1

    delfin125_1 Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    8
    Симпатии:
    0
    Я могу их писать и так, но как написать именно такую регулярку я не знаю, но я нашёл другое решение: разделяю текст в массив по строкам и уже если в строке нету заголовков - заменяю слова на ссылки. Но это слишком быдлокодный и ненадёжный выход.(

    Хотя за идею использовать DOM спасибо, но я плагин заканчиваю и всё делал на регулярках(хотя зря), по этому если уже использовать DOM, то тогда надо переделывать весь плагин, т.к пишу с ООП.

    Добавлено спустя 12 минут 26 секунд:
    Проблема решена, я пытался сделать отрицание так:(^<h([0-9]+)>)
    А надо было так:[^(<h\d>)]