Что нового

[Сеть, интернет] Поиск подстроки

Notum

Новичок
Сообщения
71
Репутация
0
День добрый.

Я присваиваю к строке последовательно строки из html-странички следующим образом:

Код:
$String = _INetGetSource("ссылка на сайт")


Когда появляется строка
Код:
'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',
необходимо присвоить в какую нибудь переменную всё, что находиться между
Код:
Title=
и
Код:
=1',
Заранее спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Notum
Попробуйте так:
Код:
$sString = "'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',"
$sPattern = "(?s).*?Title=(.*?)=1,?.*"

MsgBox(0, "", StringRegExpReplace($sString, $sPattern, "\1"))

Или так:
Код:
$sString = "'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',"
$sPattern = "(?s).*?Title=(.*?)=1,?.*"
$aString = StringRegExp($sString, $sPattern, 3)
If IsArray($aString) Then
	MsgBox(0, "", $aString[0])
Else
	MsgBox(0, "", "NO")
EndIf
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Код:
$s = "'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',"
$pat = ".+Title=(.+)=1.+"
$s = StringRegExpReplace($s, $pat, '\1')
MsgBox(0, '', $s)
 
Автор
N

Notum

Новичок
Сообщения
71
Репутация
0
К сожалению, не совсем то! Я забыл сказать, что содержание строки
Код:
'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',
может быть любым, а не только то, что я привёл в пример. То есть... До
Код:
Title=
может быть всё, что угодно...
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Код:
$line = "'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',"

$mat = StringRegExp($line, "Title=(.+?)=1", 1)
if @error = 0 Then ConsoleWrite($mat[0])



Добавлено:
Сообщение автоматически объединено:

Непонятно зачем вы используете функцию замены, когда для этих целей есть функция поиска :smile:
 
Автор
N

Notum

Новичок
Сообщения
71
Репутация
0
Suppir сказал(а):
Код:
$line = "'flashvars','areaPath=images%2Fdata%2Farea_links%2F&areaImage=alt_branendal_port.jpg&areaTitle=%D0%9F%D0%BE%D1%80%D1%82+%D0%91%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B4%D0%B0%D0%BB%D1%8F&online=1',"

$mat = StringRegExp($line, "Title=(.+?)=1", 1)
if @error = 0 Then ConsoleWrite($mat[0])



Добавлено:
Сообщение автоматически объединено:

Непонятно зачем вы используете функцию замены, когда для этих целей есть функция поиска :smile:




Огромное спасибо, ваш метод мне помог!
 
Верх