426 (изменено: teadrinker, 2019-04-07 21:05:31)

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

Так я говорил о том коде только в контексте вашего вопроса о принадлежности одних и тех же элементов разным группам, пытаясь вам доказать, что в этом ничего странного и неправильного нет. Мне это, я так понимаю, не удалось?

DD пишет:

в вашем мне тоже не удалось разбить строку по группам

Повторяете ошибки, о которых уже говорилось — нет смысла брать в скобки весь шаблон целиком. И где вы нашли там группы 2 и 3? Даже с учётом вашей ошибки там всего одна. (?<=>) — это не группа, а look-behind assertion.

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

427

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

Неправильного может там и нет ничего, но на практике не подходит. А группы 2 и 3 я пока тестировал, добавил. Так тоже захватывается символ из второй группы:

str =
(
    <p><p>   <a href="4rthmurla.jpg"><a href="4rthmurla.jpg"><a href="4rthmurla.jpg"><a href="4rthmurla.jpgdd"><b>bold</b><a href="4rthmurla.jpg">                                <blockquote></blockquote>(((((((((((((((((((((( j <img src="4rthmurla.jpg"></a></blockquote></p>   
)
str := RegExReplace(str, "((?<=>)\s*[^\s<])(.*)", "$1---------$2")
MsgBox % str

428

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

Не понял, куда именно захватывается? И какой символ? Здесь группы не пересекаются никак. Имейте в виду, что разделение на группы ваше, не моё.

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

429

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

В первую группу захватывается символ из второй группы (первая буква слова «bold»). А то что разделение на группы мое и не отрабатывает, я уже повыше намекнул.

430

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

А почему вы считаете первую букву слова «bold» символом из второй группы? Разве он есть во второй группе? Опять подразумеваете?

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

431

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

Конечно. В моем понимании всё, что входит в $1 — это первая группа, и тд.

432

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

Ну да, всё правильно.

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

433

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

Но как же правильно разделить группы?

434

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

Давайте всё же перейдём от подразумевания к формулировкам.

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

435

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

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

436

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

Всё ещё слишком много подразумевания.

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

437

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

Надо, чтобы в группе $1 ($2, $3...) находились начальные теги, а в следующих группах — всё, начиная от слова «bold».

438

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

Перечитайте внимательно, что написали, хорошо подумайте, попробуйте ещё раз.

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

439

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

Что-то я переподразумевался, действительно). Как правильно конечные теги оформить в третью группу? —

str =
(
    <p><p>   <a href="4rthmurla.jpg"><a href="4rthmurla.jpg"><a href="4rthmurla.jpg"><a href="4rthmurla.jpgdd"><b>bold</b><a href="4rthmurla.jpg">                                <blockquote></blockquote>(((((((((((((((((((((( j <img src="4rthmurla.jpg"></a></blockquote></p>   
)
str := RegExReplace(str, "((?<=>))(\s*[^\s<].*)((?<=>)(\s*[^\s>]))", "$1---------$2---------$3")
MsgBox % str

440

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

Все никак — они идут не подряд. Вы напрасно используете RegExReplace для отслеживания содержания групп, RegExMatch для этого подходит гораздо лучше.

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