Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » StringRegExpReplace — для чайников!

Ответить
Настройки темы
StringRegExpReplace — для чайников!

Аватара для semiono

Ветеран


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

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


Не мог бы ктонибудь простые понятные примеры показать.
Код: Выделить весь код
$s = StringRegExpReplace("ab12", "[:alpha:]","f")
MsgBox(0,"",$s)
У меня либо никакого результата, либо результат не предсказуемый. Совсем не понятно ничего.
Почему это альфа вдруг буквы не показывает? А паттерн {x} сам себя размножает.

И как создать тест с переносом строк внутри кода, array() чтоли?
Для удобства хочется всё в одном скрипте собрать,хотя можно и внешний тест шаблон подключить в крайнем случае.

То что в хелпе написанно, ну не понятно совершенно к сожалению. Особенно примеры утомляют напичканные
While, If, Then, тут итак мозги свернёшь, нужны примитивные примеры, а не сложные.

-------
Полезное сообщение


Отправлено: 21:51, 17-11-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата semiono:
что значит заменить на '\1' »
Это значит что будет найдена группа (то что попадает в полукруглые скобки), т.е (This.*test) при замене на \1 вернёт например This is a test.

Цитата semiono:
как можно StringRegExp() часть строки протестировать? Сравнить с шаблоном. »
Код: Выделить весь код
StringRegExp($Test, '\s*Some Data.*')

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 01:09, 18-11-2010 | #11



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

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


Аватара для semiono

Ветеран


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

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


Код: Выделить весь код
If StringRegExp($line, "\s*<obj class=""UPoint"" name=""Size""*") = 1 Then Exit
Как зделать чтоб не Exit был, а наоборот при совпадении был переход к следующей команде.
К следующему StringRegExp( только с другим патерном)

-------
Полезное сообщение


Отправлено: 01:28, 18-11-2010 | #12


Аватара для gregaz

Пользователь


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

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


Код: Выделить весь код
If StringRegExp($line, "\s*<obj class=""UPoint"" name=""Size""*") =0 Then Exit ;  
;Следующая команда
;....................................

Последний раз редактировалось gregaz, 18-11-2010 в 10:16.

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

Отправлено: 10:05, 18-11-2010 | #13


Аватара для semiono

Ветеран


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

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


Я об этом подумал, но тогда чекнув первую строку и не найдя в ней соответствия будет выход.
Тут скорее что-то с @error нужно, только там возврат функции я не очень понял, и многообразие флагов.
--->8--
Снова моя идея провалилась! Я мыслил так, что надо проверять (StringRegExp) соответствие строк пошагово.
И найдя нужную строку следующим шагом найти другую строку, и если надо и третью.
И тут вдруг понял, что мне это ничего не даст, так как перебор итак идёт от начала и последовательно.
Причём нахождение первого экземпляра само по себе тоже ничего не значит.
Вот если бы курсор установить в эту позицию и продолжить. Но опять же всё итак по порядку читается.
А главное, что мне опять же понадобиться StringRegExpReplace после StringRegExp.
Но затея вся была лишь из-за того, чтобы "грамотно" логично настроить поиск.

Но всёравно суть лишь в том, что надо найти ключевые слова из нескольких строк, выстроить их в паттерн
и применить StringRegExpReplace к блоку. Поэтому всё уже итак зделано. Надо лишь условие уточнить.
Видимо из-за неверно установленных уникальных слов замена не корректно происходит.
Обычно при наличии похожих блоков почему-то редактируется всегда самый нижний во всём XML.
И ещё плохо что он один редактируется, было бы уж лучше тогда чтобы все зацепило функцией
подходящие под образец, раз уж они похожи.

-------
Полезное сообщение


Отправлено: 14:54, 18-11-2010 | #14


Аватара для AZJIO

Старожил


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

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


Цитата semiono:
Обычно при наличии похожих блоков почему-то редактируется всегда самый нижний во всём XML.
И ещё плохо что он один редактируется, было бы уж лучше тогда чтобы все зацепило функцией
подходящие под образец, раз уж они похожи. »
Значит регулярное выражение составлено неверно. Там есть жадный и не жадный квантификатор. Жадный ищет до последнего совпадения, не жадный до первого попавшегося и заменяет все последующие. Вот ещё утилиткой воспользуйся.

Отправлено: 01:51, 21-11-2010 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » StringRegExpReplace — для чайников!

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
xampp для чайников binders Вебмастеру 1 23-04-2014 19:05
Разгон видеокарты NVidia для чайников Dabaduch Разгон, охлаждение и моддинг 33 28-01-2013 16:38
Система - Программа для работы с разделами "для чайников" Alla65 Программное обеспечение Windows 1 20-04-2009 17:58
Тихая установка для чайников MedVetoff Автоматическая установка приложений 5 16-10-2008 22:04
Инструкции для чайников Tanya Хочу все знать 22 25-02-2004 00:42




 
Переход