Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RegExp - паттерны, matches... / 4 сообщений из 4, страница 1 из 1
15.02.2016, 00:58
    #39170933
гурД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RegExp - паттерны, matches...
Наше вам с кисточкой... ))

!) Не подскажете с паттерном?
Нужно за один проход забрать оттуда сразу Оператора, Номер, Стоимость...
Отдельные вроде получились, не понимаю уже, как с остальными...
Код: vbnet
1.
2.
'телеф номер:
p = "\b[8|\+7][-.]?\d{3}[-.]?\d{3}[-.]?\d{4}\b"


Код: vbnet
1.
p = p & "(.{10,30})[Руб.</b>]"


(Кажется, как-то можно было по submatches, или не пойму...)
2) С кодировкой источника что-то в итоге не так
source
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
		
		</p>
		<p>&nbsp;</p>
		</td><td>&nbsp;</td></tr><tr><td width="46%" valign="top">
		<u>Билайн 8-965-117-8558</u>
		<p align="right">Цена: <b>999 Руб.</b>
			
		<form action="/">
			<input type="hidden" name="type" value="buy" />
			<input type="hidden" name="buy_id" value="120085532" />
			<div align="right"><input type="submit" value="Купить" style="font-size:10px;" /></div>
		</form>	
		
		</p>
		<p>&nbsp;</p>
		</td><td>&nbsp;</td><td width="46%" valign="top">
		<u>Билайн 8-965-117-8668</u>
		<p align="right">Цена: <b>999 Руб.</b>
			
		<form action="/">
			<input type="hidden" name="type" value="buy" />
			<input type="hidden" name="buy_id" value="120085533" />
			<div align="right"><input type="submit" value="Купить" style="font-size:10px;" /></div>
		</form>	
		
		</p>
		<p>&nbsp;</p>
		</td><td>&nbsp;</td></tr><tr><td width="46%" valign="top">
		<u>Билайн 8-965-118-6556</u>
		<p align="right">Цена: <b>999 Руб.</b>
			
		<form action="/">
			<input type="hidden" name="type" value="buy" />
			<input type="hidden" name="buy_id" value="120085534" />
			<div align="right"><input type="submit" value="Купить" style="font-size:10px;" /></div>
		</form>	
		
		</p>
		<p>&nbsp;</p>
		</td><td>&nbsp;</td><td width="46%" valign="top">
		<u>Билайн 8-965-119-0660</u>
		<p align="right">Цена: <b>999 Руб.</b>


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Function HtmlParser(ByVal str As String)
'   MsgBox "Test-" & oRgx.Test("    </p>" & _
'    "<p>&nbsp;</p>" & _
'    "</td><td>&nbsp;</td><td width=""46%"" valign=""top"">" & _
'    "<u>МегаФон 8-926-795-1144</u>" & _
'    "<p align=""right""Цена: <b>1999 Руб.</b>")
Dim i As Integer, s As String
Dim fso, fld, f, ofsoTxtStream
Dim oRgx, orgxMatch, orgxMatcheS
Set oRgx = CreateObject("VBScript.RegExp")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(str)
Set ofsoTxtStream = f.OpenAsTextStream(1)

'читаем файл в поток, поток в переменную:
s = ofsoTxtStream.readall(): ofsoTxtStream.Close
'
'Паттерны:
Dim p As String 
'телеф номер:
p = "\b[8|\+7][-.]?\d{3}[-.]?\d{3}[-.]?\d{4}\b"

p = p & "(.{10,30})[Руб.</b>]"

   oRgx.Global = True
   oRgx.ignorecase = False
   oRgx.Multiline = True
   oRgx.pattern = p
'ТЕСТ:
'     MsgBox "Test-" & oRgx.Test("    </p>" & _
'    "<p>&nbsp;</p>" & _
'    "</td><td>&nbsp;</td><td width=""46%"" valign=""top"">" & _
'    "<u>МегаФон 8-926-795-1144</u>" & _
'    "<p align=""right""Цена: <b>1999 Руб.</b>")
   Set orgxMatcheS = oRgx.Execute(s)
   Debug.Print orgxMatcheS.Count
  For i = 0 To orgxMatcheS.Count - 1
    Set orgxMatch = orgxMatcheS.Item(i)
     Debug.Print "#############"
     Debug.Print orgxMatch.FirstIndex
     Debug.Print orgxMatch.Length
     Debug.Print "------------"
'     Debug.Print orgxMatcheS.Value
     Debug.Print orgxMatcheS.Count
'''''''     Debug.Print orgxMatcheS.Item(i)
     Debug.Print "============"
  Next
MsgBox "!"
Set fso = Nothing: Set fld = Nothing: Set ofsoTxtStream = Nothing: Set f = Nothing
Set oRgx = Nothing: Set orgxMatcheS = Nothing: Set orgxMatch = Nothing
End Function

...
Рейтинг: 0 / 0
15.02.2016, 01:08
    #39170935
гурД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RegExp - паттерны, matches...
( Тут ещё и тренироваться можно, до чего дошла техника...:-))
...
Рейтинг: 0 / 0
15.02.2016, 05:33
    #39170961
гурД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RegExp - паттерны, matches...
3) Я так думаю, вначале выбранные строки должны попадать в Матчи,
а далее разбираться на составляющие уже по SubMatches в каждом Match соответственно?..
...
Рейтинг: 0 / 0
18.02.2016, 18:47
    #39174661
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RegExp - паттерны, matches...
Модератор: Автор попросил в Visual Basic отправить. Не знаю, тут ли топику место, но исполняю.

Модератор: Тема перенесена из форума "Microsoft Access".
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RegExp - паттерны, matches... / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]