Есть строка:
e<a1>t<b1>r<a2>a<b1>s<b2>h<b3>.<b4>a<a3>n<b1>d<b2>.<b3>u<b4>n<b5>w<a4>a<b1>n<b2>t
Нужно регулярное выражение, получающее из подобной строки список вида:
a1
b1
a2
b1
b2
b3
b4
a3
b1
b2
b3
b4
b5
a4
b1
b2
Сам что-то проскальзываю.
Примечание:
to: NetRain (Alexander Borovikov)
Будь это так просто, я бы не спрашивал. a и b - не просто символы, а вполне произвольные строки, причём весьма разные (что особенно важно)
Примечание:
to: NetRain (Alexander Borovikov)
Вы напрасно привязываетесь к символам <> - они тут только для наглядности. Привязываться можно только к (a\d) и (b\d) (их и нужно выбирать)
Определять строку через символьный класс - это слишком смело, так мы мусора насобираем.
Примечание:
Хорошо, описываю более лучше:
есть HTML страница, на ней есть "термины" (то самое a) и "определения" (b). И термины и определения - это набор тэгов, между ними возможно наличие любого количества любых символов не образующих ни термины, ни определения.
Задача прежняя - вытащить список терминов и соответствующих определений.
Примечание:
"Так может проще использовать DOM..."
Проще, но не лучше. Частную задачу я уже решил. И да, её можно решить с помошью DOM, XPATH, SAX, но мне это не интересно, т.к. вполне очевидно КАК это сделать. Меня интересует решение ИМЕННО С ПОМОЩЬЮ РЕГУЛЯРНОГО ВЫРАЖЕНИЯ.
Считайте что вам на собеседовании дали такую вот задачу. И данные в общем случае совсем необязательно структурированы.
Единственно что мы можем на 100% - найти в данных конструкции вида "a" (термин) и вида "b" (определение).
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.