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

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

Ответить
Настройки темы
[решено] StringRegExpReplace - очистить строку при наличии контрольного слова

Новый участник


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

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


Суть вопроса: нужен паттерн, чтобы при отсутствии в строке определенного слова
(в примере "test") StringRegExpReplace возвращал пустую строку.
Типа:

Код: Выделить весь код
$str='Script Start'
MsgBox(0,'',StringRegExpReplace($str,'^(.*test.*){0}$',''))
Естественно пример не рабочий

Отправлено: 15:18, 02-09-2009

 

Аватара для beve

Старожил


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

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


Цитата asdf8:
чтобы при отсутствии в строке определенного слова
(в примере "test")... возвращал пустую строку. »
Тебе для этого лучше использовать: StringInStr

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 15:35, 02-09-2009 | #2



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

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


Новый участник


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

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


Цитата beve:
Тебе для этого лучше использовать: StringInStr »

Да, со StringInStr можно сделать без проблем, но надо с StringRegExpReplace

Отправлено: 15:42, 02-09-2009 | #3


Аватара для Creat0R

Must AutoIt


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

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


Тему закрываю в связи с нарушением пункта 2.7 общих правил.

В ПМ принимается предложение по новому названию темы, пример того как может именоваться подобная тема, можно увидеть тут.

Тема переименована по предложению asdf8 и открыта.

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

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

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


Последний раз редактировалось Creat0R, 02-09-2009 в 16:32.


Отправлено: 16:01, 02-09-2009 | #4


Аватара для Creat0R

Must AutoIt


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

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


Цитата asdf8:
нужен паттерн, чтобы при отсутствии в строке определенного слова
(в примере "test") StringRegExpReplace возвращал пустую строку »
А почему именно Replace? Ну можно так:

Код: Выделить весь код
$sStr = 'Script Start'
$sInStr = 'test'

MsgBox(0, '', StringRegExpReplace($sStr, '(.*' & $sInStr & '.*)|.*$', '\1'))

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

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

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

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

Отправлено: 16:30, 02-09-2009 | #5


Новый участник


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

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


Спасибо beve , что откликнулся в ПМ

Цитата beve:
$str='Script Start test'
$pattern="test"
If StringRegExpReplace($str,'.*('&$pattern&').*','\1') ==$pattern Then
MsgBox(0,"","есть такое слово")
Else
MsgBox(0,"","")
EndIf
Еще раз опишу суть проблемы. В начале работы скрипта вводятся несколько регю выражений (каждый раз разные),
Далее в цыкле производится обработка массива строк функцией StringRegExpReplace по заданным паттернам и нет никакой возможности обрабатывать другие условия - это полностью ломает первоначальную концепцию

Цитата Creat0R:
Ну можно так: »
Вот это кажись то-что надо!

Отправлено: 16:34, 02-09-2009 | #6


Googler


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

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


asdf8, еще вариант:
Код: Выделить весь код
$str = "Script Start"
$tst = "test"
$out = StringRegExpReplace($str,'^.*?(?:(\Q'& $tst &'\E).*|$)','\1')

ConsoleWrite($out &@CRLF)

Отправлено: 16:42, 02-09-2009 | #7


Новый участник


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

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


Спасибо всем ответившим

amel27 - спасибо за ответ, в принципе пример работает, но видимо я сам
не упомянул, что в обратном случае должна возвращаться оригинальная строка.


Вопрос считаю решенным, тему - закрытой.

Отправлено: 16:53, 02-09-2009 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как уменьшить размер CD при наличии дублирующихся файлов Dorian Grey Автоматическая установка Windows 2000/XP/2003 12 21-01-2012 20:25
Доступ - [решено] Проблема с записью в реестр Windows XP при наличии прав. yoxel.ru Microsoft Windows 2000/XP 8 24-07-2009 15:20
[решено] При наличии файла ответов нет функции Восстановления (Repair, [R]) toai Автоматическая установка Windows 2000/XP/2003 33 27-03-2009 11:20
Прочие - [решено] Что делать если игра запускается только при наличии диска в дисководе firedevil Программное обеспечение Windows 4 13-09-2008 11:54
Использование - [решено] Как работает право DownGrade на Win2K при наличии Win2003? DoublE_zone Лицензирование продуктов Microsoft 1 15-11-2007 08:06




 
Переход