![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Имеется некий текст и регулярное выражение. Надо найти все значения, которые подходят под это регулярное выражение и записать в массив. Как это сделать?
|
#2
|
||||
|
||||
![]() Как вариант взять стандартную функцию поиска и замены текста и посмотреть как она работает.
Функция из строки выделяет подстроку по определённому правилу, см внутри функции, и меняет текст, т.е. работает с "подстрокой" Функция называется StringReplace Пример: Код:
Сама функция: Код:
Последний раз редактировалось Uniq!, 09.10.2010 в 20:14. |
#3
|
|||
|
|||
![]() Uniq!, нет, не то. мне не надо замену делать.
Имеется выражение <[a-zA-Z][a-zA-Z0-9]*>, имеется текст: Цитата:
Получить следующий массив: Цитата:
|
#4
|
||||
|
||||
![]() Переменной присваиваешь текст.
Ищешь тег <tag>(Pos('<tag>', S)) Ищешь тег </tag>(Pos('</tag>', S)) С позиции после <tag> до позиции </tag> копируешь в переменную/список (Copy(S, x, y)) Удаляешь всё перед </tag>, включая и его тоже, чтобы не попался при следующем поиске (Delete(S, 1, P)) И заново, т.е. цикл. UPD Или тебе нужно записать все встречающиеся теги? IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © Последний раз редактировалось Sky.NET, 09.10.2010 в 20:50. |
#5
|
|||
|
|||
![]() Вообще, похоже на xml/html. Для этого возиться с RegExp'ами совершенно не обязательно. Если у тебя реально wellformed xml, то можно воспользоваться TXMLDocument и потом просто пройтись по узлам. Если нет, то можно воспользоваться MS HTML парсером.
|
#6
|
|||
|
|||
![]() Цитата:
Цитата:
|
#7
|
||||
|
||||
![]() Ну собственно найти теги можно также, только
первым находить '</', т.к. '<' присутствует и в отрывающем и в закрывающем теге, и вторым '>'. И если в списке нет найденного тега, добавить в список. IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © |