Что нового

[Данные, строки] StringRegExp как вытянуть необходимый текст?

Статус
Закрыто для дальнейших ответов.

HaeMHuK

Новичок
Сообщения
43
Репутация
0
The result is: gsdf234512

Помогите разобраться как вытянуть "gsdf234512".
Раз 10 перечитал мануал, не могу понять что куда вставить.
Если не сложно с комментариями.
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Код:
$aResult = StringRegExp('The result is: gsdf234512', ':\s+(.*)', 3)
ConsoleWrite($aResult[0] & @CRLF)

[:\s+] - знак двоеточие, после которого идут пробелы(\s) минимум один (+)
[(.*)] - любой символ (.) любое количество раз (*), поскольку после этого никаких условий нет - это съест всю строку
То что в круглых скобках попадет в выдачу

Модераторам: у меня есть желание оформить FAQ по StringRegExp, с самых азов и до куда хватит моих знаний :smile:, небольшими уроками с подробными комментариями, но куда это размещать?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
HaeMHuK
Или так можно.
Код:
$sString = 'The result is: gsdf234512'

$sResult = StringRegExpReplace($sString, '(?s).*?is:\s?(.*?)$', '\1')
MsgBox(64, @extended, $sResult)


Скачал когда-то справку, составленную AZJIO, ей и пользуюсь
 

kaster

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

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
madmasles сказал(а):
HaeMHuK
Или так можно.
Код:
$sString = 'The result is: gsdf234512'

$sResult = StringRegExpReplace($sString, '(?s).*?is:\s?(.*?)$', '\1')
MsgBox(64, @extended, $sResult)
Расшифрую :smile:
[(?s)] - значит, что под точкой(.) может быть любой символ, включая новую строку
[.*?] - любое количество (*) любых символов (.), пока не встретим...
[is\s?] - "is" после которого может быть пробел, но не обязательно \s?
[(.*?)] - любое количество (*) любых символов (.), но поскольку за * стоит ? он не съест всю строку, а только до того, пока не встретит...
[$] - конец строки

'\1' - флаг выдачи найденного сочетания(т.к. обычно на этом месте идет текст замены - на что заменить найденный текст)

Kaster сказал(а):
Redline
в разделе про регвыры. если будет норм, то прикрепят, я думаю
Ок думаю скоро приступлю :IL_AutoIt_1:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
OffTopic:
Redline
Пользуюсь этой конструкцией давно, но так понятно объяснить, как Вы, не смог бы. Так что обязательно оформляйте FAQ по StringRegExp, ИМХО у Вас хорошо это получится. ;)
 
Статус
Закрыто для дальнейших ответов.
Верх