Add(MainForm,2953706,182,224)
{
Width=1178
Height=639
}
Add(Button,7949013,182,266)
{
Left=295
Top=5
Caption="Open"
link(onClick,1960316:doExec,[])
}
Add(StrList,3583572,259,210)
{
FileName="test.txt"
Strings=#6:Level_|11:Бла,бла,бла|11:Блу,блу,блу|4:end_|6:Level_|13:Хоп, хоп, хоп|13:Хуп, хуп, хуп|13:Хап, хап, хап|4:end_|6:Level_|13:Поп, поп, поп|13:Пуп, пуп, пуп|13:Пап, пап, пап|4:end_|6:Level_|13:Лоп, лоп, лоп|13:Луп, луп, луп|13:Лап, лап, лап|4:end_|
}
Add(RE_Search,1960316,259,266)
{
Expression="Level_.*?end_"
Point(Matches)
link(onMatch,1960316:doExecNext,[(302,272)(302,304)(247,304)(247,279)])
link(SourceStr,3583572:Text,[])
}
Add(UpDown,956442,189,322)
{
Left=85
Top=30
Width=50
Height=85
Max=1000
link(onPosition,9925749:doText,[])
}
Add(Memo,3329315,357,322)
{
Left=200
Top=45
Width=805
Height=535
ScrollBars=3
}
Add(MT_MTArrayRW,187780,280,322)
{
link(onRead,5374687:doEvent,[])
link(Array,1960316:Matches,[])
}
Add(Edit,9925749,231,322)
{
Left=145
Top=60
Text="0"
DataType=1
link(onChange,187780:doRead,[])
}
Add(Debug,5374687,329,322)
{
link(onEvent,3329315:doAdd,[])
}
Этот топик читают: Гость
Ответов: 1536
Рейтинг: 176
|
|||
Хотелось бы увидеть пример по использованию нижней точки Matches (Содержит массив совпадений всех подгрупп регулярного выражения в следующем формате MT-потока: [Match][Position][Length]) элемента RE_Search. Почему-то у меня есть доступ чтения только к первому найденному вхождению по индексу, и всё. А мне-то нужно ко всем. И вот не получается. Может авторы и разработчики Abulafia и Assasin что-то пояснят.
|
|||
карма: 1 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-09 08:00:41 |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
ser_davkin, для начала следует понять, что регулярное выражение может состоять из подгрупп, которые можно создать с помощью скобок, например:
Важно понять, что в Matches не накапливаются результаты поиска всех подстрок в тексте (попытки использования чего мы видим в примерах выше), в этом массиве хранятся только подгруппы для текущей найденной подстроки. Если нам нужны вхождения всех подстрок, можно воспользоваться такой схемой:
37.45.76.40 писал(а): а он не пустой, а бесконечный (повесит программу если убрать ограничитель)Это небольшой бажок, сейчас поправлю. 37.45.76.40 писал(а): И почему пустой массив выдает количество = -1?Не понял, где он это выдает? |
|||
карма: 10 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-09 08:00:42 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-09 08:00:42 |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
37.45.76.40, -1 возвращает движок регулярок, а в реализацию движка мы не лезем. -1 означает, что поиск вообще не проводился. Я, конечно, могу добавить проверку на -1, чтобы заменялось на 0, но стоит ли оно процессорного времени
![]() |
|||
карма: 10 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-09 08:00:42 |
|||
карма: 0 |
|
Ответов: 1536
Рейтинг: 176
|
|||
Assasin, ага, понял.
|
|||
карма: 1 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Обновление с фиксами залито на svn, проверка на -1 добавлена.
------------ Дoбавленo в 16.58: [offtop]37.45.76.40, а кто вы? + бы вам поставить[/offtop] |
|||
карма: 10 |
| ||
Голосовали: | ser_davkin |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-09 08:00:42 |
|||
карма: 0 |
|
10