Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Регулярные выражения в AutoIt

Ответить
Настройки темы
[решено] Регулярные выражения в AutoIt

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Заранее прошу прощения если темы уже была, поиском не нашол ничего подходящего.
Вообщем проблема в следующем, читал русскую справку (про английскую вообще молчу) и никак не могу понять написание шаблонов для
В справке не достаточно понятно как использовать такие шаблоны. + к этому у меня всегда были проблемы с рег. выражениями в других языках...

Хотелось бы чтоб ктонибудь объяснить популярно как составлять такие шаблоны.
В справке есть таблица специальных символов (Элементы шаблона), но по ней для меня очень сложно составить шаблон.
Пример такой:
Нужно из текста выковырять все ссылки такого вида:
view.php?ad=122887
view.php?ad=12285
view.php?ad=1222287
Меняется только число после =
Дак вот вродибы простое выражение, а у меня составило много трудностей.
Исходя из справки у меня получился такой шаблон:
Код: Выделить весь код
StringRegExp($Text, "(view.php?ad=)\d*", 1)
Но он в корне не правильный, а у меня даже мысли нет почему?
Поэтому прошу помощи в освоении регулярных выражениях...

-------
Хочу научиться писать драйвера на с++


Отправлено: 15:37, 15-04-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата morgan1991:
он в корне не правильный »
только немного подправить:
Код: Выделить весь код
StringRegExp($sText, "view.php\?ad=\d+", 3)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:34, 15-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


amel27, у меня не работает...
Сделал так и заработало:
Код: Выделить весь код
StringRegExp($Text, "(view.php\?ad\=\d+)", 3)

-------
Хочу научиться писать драйвера на с++


Отправлено: 16:58, 15-04-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


morgan1991, странно, "=" вроде не является метасимволом в такой комбинации

Отправлено: 17:07, 15-04-2010 | #4


Аватара для kim-aa

Назгул


Сообщения: 2633
Благодарности: 345

Профиль | Отправить PM | Цитировать


Точка является метасимволом

В perl это было бы так
view\.php\?ad=\d+

Скобки, кстати, в стандартной Regex машине является способом адресации к вхождению, а не только ограничителем

-------
Мы овладеваем более высоким стилем спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера. (c)Жванецкий

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:11, 15-04-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


kim-aa, точно, не заметил... хотя на работу выражения это не повлияло
а чтобы не следить за всеми метасимволами можно экранировать всю подстроку:
Код: Выделить весь код
\Qview.php?ad=\E\d+

Отправлено: 17:18, 15-04-2010 | #6


Аватара для kim-aa

Назгул


Сообщения: 2633
Благодарности: 345

Профиль | Отправить PM | Цитировать


Цитата morgan1991:
Нужно из текста выковырять все ссылки такого вида:
view.php?ad=122887
view.php?ad=12285
view.php?ad=1222287 »
Пример текста приведите.

Может быть имеет смысл ввести в строке поиска выравнивание по границе слова:

типа этого

\bview\.php\?ad=\d+\b

-------
Мы овладеваем более высоким стилем спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера. (c)Жванецкий


Отправлено: 17:28, 15-04-2010 | #7


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Цитата kim-aa:
Пример текста приведите. »
Код: Выделить весь код
<tr> 
								  <td width="70%" class="al3"><span class="al6">
								  <a class=al4 href=view.php?ad=122562 target=_blank>Don't Wait Another Minute. Make Money Today!</a> 								  
								  </span></td>
								  <td width="10%" class="al5"><span class="al6">
									402642</span></td>
								  <td width="10%" class="al5"><span class="al6">
									4300</span></td>

								  <td width="10%" class="al5"><span class="al6">
									406942</span></td>
								</tr>
															
								<tr> 
								  <td width="70%" class="al3"><span class="al6">
								  <a class=al4 href=view.php?ad=122564 target=_blank>$12,200.29 In Only 5 Days</a> 								  
								  </span></td>
								  <td width="10%" class="al5"><span class="al6">
									402647</span></td>

								  <td width="10%" class="al5"><span class="al6">
									4558</span></td>
								  <td width="10%" class="al5"><span class="al6">
									407205</span></td>
								</tr>
															
								<tr> 
								  <td width="70%" class="al3"><span class="al6">
								  <a class=al4 href=view.php?ad=122565 target=_blank>$3,456 Google Pay Day</a> 								  
								  </span></td>

								  <td width="10%" class="al5"><span class="al6">
									402649</span></td>
								  <td width="10%" class="al5"><span class="al6">
									4537</span></td>
								  <td width="10%" class="al5"><span class="al6">
									407186</span></td>
								</tr>
Цитата kim-aa:
Может быть имеет смысл ввести в строке поиска выравнивание по границе слова »
Да и так всё вродибы отлично работает...

-------
Хочу научиться писать драйвера на с++


Отправлено: 17:36, 15-04-2010 | #8


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Помогите пожалуйста ещё с таким выражением:
Код: Выделить весь код
[цифры меняющиеся1,цифры меняющиеся2,["Меняющийся текст1"],[цифры меняющиеся3,"Меняющийся текст2","ссылка на файл","
Необходимо получить двумерный массив:
Код: Выделить весь код
$arr[0][0] = цифры меняющиеся1
$arr[0][1] = цифры меняющиеся2
$arr[0][2] = Меняющийся текст1
$arr[0][3] = цифры меняющиеся3
$arr[0][4] = Меняющийся текст2
$arr[0][5] = ссылка на файл
$arr[1][0] = цифры меняющиеся1
$arr[1][1] = цифры меняющиеся2
$arr[1][2] = Меняющийся текст1
$arr[1][3] = цифры меняющиеся3
$arr[1][4] = Меняющийся текст2
$arr[1][5] = ссылка на файл
И так далее...
У меня получилось так:
Код: Выделить весь код
StringRegExp($text, '\[\(d*)\,\(d*)\,\[\"(.*)\"\]\,\[(\d*)\,\"(.*)\"\,\"(.*)\"\,\"', 3)
Но не работает...

-------
Хочу научиться писать драйвера на с++


Отправлено: 19:42, 25-05-2010 | #9


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


morgan1991, дайте рабочий пример в несколько строчек

Отправлено: 03:25, 26-05-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Регулярные выражения в AutoIt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
регулярные выражения Ginger Вебмастеру 60 21-03-2012 01:11
Java - Регулярные выражения Java ValVlaGen Программирование и базы данных 0 19-10-2009 08:06
Разное - PHP - регулярные выражения: HELP GoldenOrb Программирование и базы данных 10 08-09-2008 16:47
PHP - регулярные выражения: HELP GoldenOrb Вебмастеру 13 18-07-2008 16:05
Регулярные выражения est Хочу все знать 6 02-10-2002 14:17




 
Переход