Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
19.03.2010 11:33

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Регулярные выражения в QSP: Советы и решения

Регулярные выражения меня пугают, их знатоков (вместе с уверенными пользователями факсов) я считаю инопланетянами, но воспользоваться возможностями, предоставляемыми этой тарабарщиной, хотелось бы, поэтому давайте здесь перечень рецептов для QSP разместим, а?

Неактивен

0    0    #2
19.03.2010 11:35

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Регулярные выражения в QSP: Советы и решения

Например, мне очень нужна обработка текста, чтобы из него вырезались все ссылки, т.е. конструкция

Код:

<a class="…" href="…"><font color=#FFFFFF>Текст</font></a>

менялась на

Код:

<font color=#FFFFFF>Текст</font>

т.е. вырезалось бы именно то, что относится к ссылке.

Неактивен

0    0    #3
19.03.2010 12:42

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Регулярные выражения в QSP: Советы и решения

Создаем локацию-функцию "del links", на ней такой код:

Код:

$regex='<a[^>]+href="[^"]+"[^>]*>(.*?)</a>'
:loop
pos = strpos($args, $regex)
if pos:
    $args = mid($args, 1, pos - 1) + _
        strfind($args, $regex, 1) + _
        mid($args, pos + len($strfind($args, $regex)))

    jump 'loop'
end
$result=$args

Пример вызова функции:

Код:

$test='TEST<a href="fff"><b>LINK</b></a>TEST<a href="4332">LINK</a>TEST'
func('del links',$test)

Отредактировано HzD_Byte (19.03.2010 12:43)

Неактивен

0    0    #4
19.03.2010 16:19

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Регулярные выражения в QSP: Советы и решения

А разве не не так её следует вызывать?

Код:

$test=func('del links',$test)

Неактивен

0    0    #5
19.03.2010 16:41

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Регулярные выражения в QSP: Советы и решения

В том варианте результат будет выведен в описание.

Конечно же, можно присвоить переменной - в общем, можно вызывать везде, где оно может быть частью вычисляемого выражения.

Например, из текста:

Код:

'пример <<func("del links",$test)>> текста'

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru