151

Re: AHK: Регулярные выражения

Malcev, ей-Богу))
stealzy, похоже, что вам не стоит советовать, потому что System — папка, а с RegEx тоже можно сделать, хотя и не принципиально)).

152 (изменено: DD, 2017-03-10 00:55:09)

Re: AHK: Регулярные выражения

Malcev, то есть, System — это просто пример, который указал, чтобы не было ориентации на расширение и которую надо считать за файл. Таким образом, удаляется всё, у чего есть дубликат — уровнем выше.

153 (изменено: Malcev, 2017-03-10 05:23:30)

Re: AHK: Регулярные выражения

Без предварительной сортировки не знаю как:

var=
(
C:\IE
C:\IE\t=27229.html
C:\Temp\FXSAPIDebugLogFile.txt
C:\Temp\flashgot.Profile\FlashGot.exe
C:\Temp\flashgot.Profile
C:\Program Files\Common Files\System
C:\Program Files\Common Files
F:\APPs\AdvOR-0.3.0.20\AdvOR\AdvOR.ini
)
Sort var
msgbox % RegExReplace(var,"sm`a)^(.+)\R(?=.*\1\\)")
+ DD

154

Re: AHK: Регулярные выражения

По простецкому так наверное:


var=
(
C:\IE
C:\IE\t=27229.html
C:\Temp\FXSAPIDebugLogFile.txt
C:\Temp\flashgot.Profile\FlashGot.exe
C:\Temp\flashgot.Profile
C:\Program Files\Common Files\System
C:\Program Files\Common Files
F:\APPs\AdvOR-0.3.0.20\AdvOR\AdvOR.ini
)

Loop, Parse, var, `n
	If !InStr("`n" var, "`n" A_LoopField "\")
		List .= (List = "" ? "" : "`n") A_LoopField
MsgBox % List

Malcev а что значит "1" в шаблоне, совпадение первого подшаблона? И .* не лишнее?

По вопросам возмездной помощи пишите в личку
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.25.02 (Unicode 32-bit).
+ DD

155 (изменено: Malcev, 2017-03-10 22:28:50)

Re: AHK: Регулярные выражения

serzh82saratov, да, совпадение первого подшаблона.
.* не лишнее, например, в таком случае:

var=
(
C:\IE
C:\IE.
C:\IE\t=27229.html
)
Sort var
msgbox % RegExReplace(var,"sm`a)^(.+)\R(?=.*\1\\)")

156

Re: AHK: Регулярные выражения

Спасибо!

157 (изменено: teadrinker, 2017-03-11 02:07:42)

Re: AHK: Регулярные выражения

var=
(
C:\Temp\flashgot.Profile
C:\IE
C:\Program Files\Common Files
C:\Temp\FXSAPIDebugLogFile.txt
C:\Program Files\Common Files\System
C:\Temp\flashgot.Profile\FlashGot.exe
F:\APPs\AdvOR-0.3.0.20\AdvOR\AdvOR.ini
C:\IE\t=27229.html
)
MsgBox, % RegExReplace(var,"sm`a)^(.+)\\.*\K^\1(\R|$)|^(.+)(\R|$)(?=.*^\3\\)")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

158

Re: AHK: Регулярные выражения

Аа-а, без сортировки. Спасибо, круто.

159

Re: AHK: Регулярные выражения

teadrinker интересный шаблон, если не сложно можешь рассказать что да как в нём.

По вопросам возмездной помощи пишите в личку
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.25.02 (Unicode 32-bit).

160

Re: AHK: Регулярные выражения

RegExReplace(var,"sm`a)^(.+)\\.*\K^\1(\R|$)|^(.+)(\R|$)(?=.*^\3\\)")

Если s в опциях — точка означает любой символ, включая любые возможные переносы строк.
m`a — символы ^ и $ означают начало и конец строк (а не начало и конец шаблона).
^(.+)\\.*\K — часть перед \K не включается в замену, а только говорит о том, что должно быть в начале.
\1 — ссылки на подшаблоны по порядковому номеру.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

161

Re: AHK: Регулярные выражения

Подскажите, пожалуйста, как от заголовка страницы оставить только название темы?
До:

AHK: Регулярные выражения (Страница 7) — AutoHotkey — Общение — Серый форум - Google Chrome

После:

Регулярные выражения

Win10x64, AHK v1.1.25

162

Re: AHK: Регулярные выражения

Header = AHK: Регулярные выражения (Страница 7) — AutoHotkey — Общение — Серый форум - Google Chrome
msgbox % RegExReplace(Header, "[\w: ]*([^(]+) \(.+", "$1")

Выражение слева направо: необязательное множество в квадратных скобках любой латиницы, двоеточия и пробела, подвыражение в скобках из множества любых символов, отличных от открывающей скобки, далее - пробел, сама скобка и множество любых символов. В $1 попадает всё, что попало в подвыражение.

163

Re: AHK: Регулярные выражения

Flasher, спасибо! Это выражение будет работать с любыми темами из данной ветки? Могли бы Вы добавить комментарии ко второй строке?

Win10x64, AHK v1.1.25

164

Re: AHK: Регулярные выражения

becauseim
Теперь да. Добавил.

165 (изменено: Flasher, 2017-03-24 20:23:32)

Re: AHK: Регулярные выражения

becauseim пишет:

Это выражение будет работать с любыми темами из данной ветки?

Конечно нет.
Правильно так:

Header = AHK: IfWinNotActive для всех полноэкранных приложений (Страница 1) — AutoHotkey — Общение — Серый форум - Google Chrome
msgbox % RegExReplace(Header, "(AHK: ?)?([^(]+) \(.+", "$2")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

166

Re: AHK: Регулярные выражения

Flasher, к сожалению не успел прочитать, что вы ответили, так как всё уже потёрто.
Кстати, ваш код неверен:

Header = AHK: Sockets (Страница 1) — AutoHotkey — Общение — Серый форум - Google Chrome
msgbox % RegExReplace(Header, "[\w: ]*([^(]+) \(.+", "$1")

167

Re: AHK: Регулярные выражения

Flasher, спасибо за комментарии! Но если в названии темы идут слова на латинице или цифры, то они не выводятся. В варианте от teadrinker такого не наблюдается.
teadrinker, если несложно, добавьте коментарии к Вашему варианту.

Win10x64, AHK v1.1.25

168

Re: AHK: Регулярные выражения

Ну у teadrinkera тоже не идеальный вариант.

Header = AHK: Перенести содержимое переменной (Loop, Parse) (Страница 1) — AutoHotkey — Общение — Серый форум - Google Chrome
msgbox % RegExReplace(Header, "(AHK: ?)?([^(]+) \(.+", "$2")

Я бы сделал так:

Header = AHK: Перенести содержимое переменной (Loop, Parse) (Страница 1) — AutoHotkey — Общение — Серый форум - Google Chrome
msgbox % RegExReplace(Header, "AHK:\s*(.*) \(Страница.*", "$1")

169

Re: AHK: Регулярные выражения

Malcev
Во всех случаях проблемы. Тогда уж так:

Header = Восстановление подключения Интернет при обрыве связи (Страница 1) — AutoHotkey — Общение — Серый форум
msgbox % RegExReplace(Header, "i)(AHK:\s*)?(.*) \(Страница \d+\) — .*", "$2")

И, полагаю, всё же лучше забирать не из заголовка, а из кода в <h1 class="main-title">.

170 (изменено: becauseim, 2017-03-25 16:17:11)

Re: AHK: Регулярные выражения

Flasher, спасибо! Последний вариант выглядит значителньо иначе. Дайте комментарии к нему, пожалуйста. Желательно с видимым разделением.

+ Например:

"i) Описание
(AHK:\ Описание
s*)?(.*) \ Описание
(Страница \
d+\
) — .*", "$2")

Win10x64, AHK v1.1.25

171

Re: AHK: Регулярные выражения

becauseim
Мне кажется, проще будет, если напишите, что именно неясно, исходя из справочной информации.

172 (изменено: Malcev, 2017-03-25 17:16:14)

Re: AHK: Регулярные выражения

Flasher пишет:

Во всех случаях проблемы.

Ну я бы назвал их исключениями, а не случаями.
Их, кстати, гораздо больше: AutoHotKey:, AHK_L:,WSH or AHK:....
Возможно кто-нибудь AHK напишет кириллицей (АНК) дабы не менять язык.
Всех все-равно не учтёшь.
Можно так:

Header = AutoHotKey: Передача указателя между двумя процессами (скриптами) (Страница 1) — AutoHotkey — Общение — Серый форум
msgbox % RegExReplace(Header, "(.*?(:|-)\s*)?(.*) \(Страница.*", "$3")
Flasher пишет:

полагаю, всё же лучше забирать не из заголовка, а из кода в <h1 class="main-title">.

А разница?

173

Re: AHK: Регулярные выражения

Malcev пишет:

Ну я бы назвал их исключениями, а не случаями.

Я их называю кодами.

Malcev пишет:

Всех все-равно не учтёшь.

Можно так: ([\wА-я]*:\s*)?

Malcev пишет:

А разница?

Там только заголовок темы, без "мусора".

174

Re: AHK: Регулярные выражения

Мусор-то как-раз несложно убрать (легче, чем получить его из кода страницы).
Вариант кода из 72 поста вроде работает, (если, конечно, не брать во внимание темы без префикса , но с двоеточим либо тире).
Но таких я на форуме беглым взглядом не нашёл.

175

Re: AHK: Регулярные выражения

Вообще кроме - там может быть и —. Да и пробельные символы в префиксе лучше исключить: [^\s]*.