Что нового

Выделение текста через StringRegExp

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Есть файл:
Код:
<vsvod>Это тест</vsvod>










<!-- "' --><span class="pbbRrB4o"><a href="http://www.ucoz.ru/">Бесплатный хостинг</a> <a title="Бесплатный хостинг" href="http://www.ucoz.ru/">uCoz</a></span><div id="utbr8214" rel="s62"></div>
<!-- 0.00208 (s62) -->

Нужно вывести "Это тест" в MsgBox.
У меня не получается :(
Как это сделать?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Уточню - это весь файл? Или кусок HTML из страницы? Если второе, то нужно больше текста.
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Medic84
Я это получил через _InetGetSourse, и это все что было :whistle:
 

focus

Осваивающий
Сообщения
69
Репутация
20
В t1 - Ваш текст
Код:
$sText = FileRead (@ScriptDir & '\t1.txt')
ConsoleWrite($sText & @CRLF)
;MsgBox(0,"Title",$sText &@CRLF)
;MsgBox(0,"Это тест", $sText &@CRLF)

$sText1 = StringReplace($sText, '
', ' ')
$sText2 = StringReplace($sText1, 'Это тест', ' ')
MsgBox(0, "Это тест", $sText2)
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
focus
Это не то! Читайте первый пост ;)


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

А если так?
Код:
<vsvod>Это тест</vsvod>










<!-- "' --><span class="pbbRrB4o"><a href="http://www.ucoz.ru/">Бесплатный хостинг</a> <a title="Бесплатный хостинг" href="http://www.ucoz.ru/">uCoz</a></span><div id="utbr8214" rel="s62"></div>
<!-- 0.00208 (s62) -->
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
$text =	'<vsvod>Это тест</vsvod>' & @CRLF & _
		'
' & @CRLF & _
		'
' & @CRLF & _
		'
' & @CRLF & _
		'
' & @CRLF & _
		'
' & @CRLF & _
		'<!-- "'' --><span class="pbbRrB4o"><a href="http://www.ucoz.ru/">Бесплатный хостинг</a> <a title="Бесплатный хостинг" href="http://www.ucoz.ru/">uCoz</a></span><div id="utbr8214" rel="s62"></div>' & @CRLF & _
		'<!-- 0.00208 (s62) -->'
$Reg = StringRegExp($text, '<vsvod>(.*?)</vsvod>', 3)
MsgBox(0, '', $Reg[0])
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
тема создана не в том разделе. автору устное предупреждение
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Kaster [?]
тема создана не в том разделе. автору устное предупреждение
Она должна быть в регулярных выражениях? Я прав?

Zaramot
Вот весь код:
Код:
#include <INet.au3>
#include <Encoding.au3>
;~ MsgBox(64,"",_INetGetSource('http://askonkurs.ucoz.ru'))

$text = _INetGetSource('http://askonkurs.ucoz.ru')

$text = _Encoding_CyrillicTo1251($text)

$Reg = StringRegExp($text, '<vsvod>(.*?)<\vsvod>', 3)
MsgBox(0, '', $Reg[0])

Пишет ошибку:
Код:
==> Subscript used with non-Array variable.:
MsgBox(0, '', $Reg[0])
MsgBox(0, '', $Reg^ ERROR
>Exit code: 1    Time: 1.357
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Вот:
Код:
#include <INet.au3>
#include <Encoding.au3>
;~ MsgBox(64,"",_INetGetSource('http://askonkurs.ucoz.ru'))

$text = _INetGetSource('http://askonkurs.ucoz.ru')

$text = _Encoding_CyrillicTo1251($text)

$Reg = StringRegExp($text, '<vsvod>(.*?)<', 3)
MsgBox(0, '', $Reg[0])
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
_Lexa98_,
У Вас в HTML коде ошибка, должно быть ...</vsvod>..., а не ...<\vsvod>..., как сейчас, и Encoding.au3 здесь не нужна, как и INet.au3
Код:
#include <Array.au3>

$s_Sourse = InetRead('http://askonkurs.ucoz.ru', 17)
If @error Then Exit 1
$s_Sourse = BinaryToString($s_Sourse, 4)
If StringInStr($s_Sourse, '<\vsvod>') Then
	$sPattern = '<vsvod>(.*?)<\\vsvod>'
ElseIf StringInStr($s_Sourse, '</vsvod>') Then
	$sPattern = '<vsvod>(.*?)</vsvod>'
Else
	ConsoleWrite('No tag <vsvod>' & @LF)
	Exit 1
EndIf
$aVsvod = StringRegExp($s_Sourse, $sPattern, 3)
If @error Then Exit 1
_ArrayDisplay($aVsvod)
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
madmasles
Спасибо, но у меня уже все получилось :smile:
 
Верх