Анализирую HTML. BOOST.REGEX
Ссылку получаю так: "(<a)(.*?)(</a>)" (то что, </a> может быть и так написан < /a> — это не важно)
Вопрос в следующем. Нужно найти тольк те ссылки, в которых нету допустим слова "google.com".
Т.е. заменить как-то (.*?)
13.03.12 13:57: Перенесено модератором из 'C/C++' — Odi$$ey
Здравствуйте, Аноним, Вы писали:
А>Анализирую HTML. BOOST.REGEX А>Ссылку получаю так: "(<a)(.*?)(</a>)" (то что, </a> может быть и так написан < /a> — это не важно) А>Вопрос в следующем. Нужно найти тольк те ссылки, в которых нету допустим слова "google.com". А>Т.е. заменить как-то (.*?)
заменить на ((??!google.com).)*?)
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Аноним, Вы писали:
А>>Анализирую HTML. BOOST.REGEX А>>Ссылку получаю так: "(<a)(.*?)(</a>)" (то что, </a> может быть и так написан < /a> — это не важно) А>>Вопрос в следующем. Нужно найти тольк те ссылки, в которых нету допустим слова "google.com". А>>Т.е. заменить как-то (.*?) J>заменить на ((?:(?!google.com).)*?)
Можете разъяснить операторы ?: ?!
В документации не нашел.
Есть аналоги в POSIX Extended Regular
Re[3]: Регулярное выражение. "Не содержит выражение"
Здравствуйте, MasterZiv, Вы писали:
MZ>лучшее всего составить выражение на «содержит» и обрабатывать случай не нахождения.
Мдаа... Это как — найти все и отбросить лишнее что-ли?
А вообще, вот статья
> MZ>лучшее всего составить выражение на «содержит» и обрабатывать случай не > нахождения. > Мдаа... Это как — найти все и отбросить лишнее что-ли?
Написать регвыражение на "содержит", потом
if( !re.find( txt ) )
{
// do whatever you need.
}
Это проще и легче, и быстрее.
регвыражение "не содержит" написать достаточно трудно, и оно будет требовать
определённую функциональность от библиотеки рег.выражения.