#регулярные_выражения
Всем привет! "Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems!" (c) Jamie Zawinski Помогите найти всех "кошек" через регулярные выражения! :)let's try to find this cat and this catlet's try to find this cat and this catВот это не сработало: (?<=)((?!<\/div>)(cat|(?:.|\n))+)(?=<\/div>) Debuggex Demo Второй вопрос еще интересней - найти только тех кошек, которые сидят в блоках с классом "cats": catblack cat, white catcatblack cat, white catcatОтветы
Ответ 1
Для первого случая: Пример /|cat(?=.*? )|(cat)(?=.*?<\/div>)/g пропускает открывающиеся div, или пропускает cat, за которыми следует открывающийся div, или захватывает cat, если за ним следует минимальное количество символов и закрывающийся. Для второго случая Пример /|. UPD: Благодаря дельным замечаниям ReinRaus новые варианты регулярок переписаны и теперь валидны как для PCRE, так и в js-реализации. Спасибо)|(cat)(?=.*?<\/div>)/g пропускает открывающийся div с классом cats, или пропускает прочие div - целиком, или захватывает cat, если за ним следует минимальное количество символов и закрывающийся
Комментариев нет:
Отправить комментарий