ОБСУЖДЕНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ
|
|
Andrey_A | Дата: Четверг, 19.07.2012, 02:29 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
ОБСУЖДЕНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ
В этой теме обсуждаются различные вопросы, связанные с регулярными выражениями
|
|
| |
Andrey_A | Дата: Четверг, 31.07.2014, 19:36 | Сообщение № 16 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата aleksey_shashuto1 ( ) Может есть решение такого.
Решение относительное, т.к. есть сокращения, из-за которых происходит ошибочные переносы
Что: [bgcolor=yellow] ?([^ \.\(\r\n][^ \.\r\n][^\r\n][\.\?\!]) [/bgcolor] Чем: [bgcolor=LawnGreen]$1\r\n[/bgcolor]
[v] Регулярные выражения [ ] Учитывать регистр [ ] Многострочно [v] Esc-последовательности [ ] Заменять на функцию
Накидал скрипт, в который можно прописывать отрезки игнорирующие перенос, проверял на 3-х файлах, но для большей вероятности правильной обработки надо тестировать на сотнях файлах, добавляя отрезки.
SplitTextOnLine.vbs - Разбить выделенный текст на строки, каждое предложение с новой строки.
|
|
| |
asmadeus | Дата: Воскресенье, 26.10.2014, 08:06 | Сообщение № 17 |
|
Андрей, привет! Вопрос по регулярным выражениям, правда , в autoit'e, а не AkelPad'e. Но думаю, что регулярка есть регулярка Итак, суть: -в файле ищется строка В результате я должен получить только то, что в скобках. Прекрасно работало так: Код \R(поле.*)\R - это для поиска "поле", ".+\[(.+)\].+", "$1" - это для извлечения Итак, то, что есть, я описал. Проблема: -если в файле есть строка например то регулярка ищет и его. Аналогично при сохранении в файл - заменяются все совпадения. Как исправить выражение для поиска именно того, что указано и не считать, если слово для поиска является частью другого слова? Ну как то так...
|
|
| |
Andrey_A | Дата: Воскресенье, 26.10.2014, 08:37 | Сообщение № 18 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
asmadeus, привет!
Код Как исправить выражение для поиска
Прописать после поле символ пробела
при замене тоже искать "поле " с пробелом
|
|
| |
asmadeus | Дата: Воскресенье, 26.10.2014, 09:54 | Сообщение № 19 |
|
Andrey_A, да блин.... Чувствую, это для меня останется темным лесом. Работает, пробую далее.
|
|
| |
Ingvar | Дата: Воскресенье, 31.05.2015, 20:45 | Сообщение № 20 |
Рядовой
На сайте с: 31.05.2015
Город: Москва
Сообщений: 2
|
Помогите составить регулярное выражение для AkelPad. Есть часть строки: Код посторонний текст href="часть_пути/другая_часть_пути.htm" domain="ИмяФайла.chm" дальше постронний текст Нужно между href и chm найти символ /, а затем заменить его точкой. Пока что нашел как выделить эту строку целиком (между href и chm), а как найти в ней косую черту не могу понять. Подскажите пожалуйста.
Сообщение отредактировал Ingvar - Воскресенье, 31.05.2015, 20:48 |
|
| |
Andrey_A | Дата: Понедельник, 01.06.2015, 03:58 | Сообщение № 21 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Ingvar, что искать Код (href="[^"]*)/([^"]*.*\.chm") чем заменять
|
|
| |
Ingvar | Дата: Понедельник, 01.06.2015, 11:18 | Сообщение № 22 |
Рядовой
На сайте с: 31.05.2015
Город: Москва
Сообщений: 2
|
Спасибо, работает. Вот только если в выражении несколько косых черт, то заменяется только последнее. Можно сделать чтобы убирались все? Или просто сделать несколько прогонов? И еще вопрос. Как можно исправить регулярное выражение, чтобы в этой же строке убрать .htm? То есть заменить пустым символом. Меня устроит отдельной операцией.
|
|
| |
Andrey_A | Дата: Понедельник, 01.06.2015, 13:27 | Сообщение № 23 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
Код Вот только если в выражении несколько косых черт, то заменяется только последнее. Можно сделать чтобы убирались все Есть скрипт SearchReplace.js в котором можно зам на функцию: Что: Код (href="[^"]*/[^"]*)(.htm)(.*\.chm")
чем: Код $1.replace(/([/])/g,".")+$3
расставляем галочки:
Цитата Как можно исправить регулярное выражение, чтобы в этой же строке убрать .htm
что: Код (href="[^"]*/[^"]*)(.htm)(.*\.chm") чем: Код $1.replace(/([/])/g,".")+$3
Галочки те же.
|
|
| |
Andrey_A | Дата: Пятница, 16.10.2015, 12:53 | Сообщение № 24 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
|
|
| |
chip642 | Дата: Пятница, 30.08.2019, 18:46 | Сообщение № 25 |
|
forumups
Ваш вопрос и ответ на него перенесены в соответствующую тему.
|
|
| |
asmadeus | Дата: Пятница, 26.06.2020, 22:07 | Сообщение № 26 |
|
Доброго времени суток! Прошу помочь понять суть - есть текст (часть исходного кода страницы, выложил как файл, качать по ссылке):
Надо получить эту ссылку:
Код https://uploadrar.com/rv0gs42td91e То есть ссылку на самую новую версию. Из-за повторяющихся тегов не могу отсечь ненужное. На подобных других страницах - все нормально. Реализовано кодом (Autoit):
Код $Fshare = StringRegExpReplace($Fshare,'(?is).+('&$Pr&'.+'&$PrVUpd&'.+green.+(?:Зеркало|Uploadrar)\<\/a\>).+(?:\(uploadrar\))?.+','\1') $Fshare = StringRegExpReplace($Fshare,'(?is).+href=\h*"(.+?)".+','\1')
|
|
| |
Andrey_A | Дата: Суббота, 27.06.2020, 15:33 | Сообщение № 27 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
|
asmadeus, там одинаковые теги - выходит 4 ссылки:
Строка поиска:
Код (?i)<a class="fr-text-green" href="(https://uploadrar.com[^"<>]+)" target="_blank" rel="noopener external noreferrer">Зеркало
[img640]http://tc-image.3dn.ru/Image/Regex/0/rgxasm.png[/img640]
.
|
|
| |
asmadeus | Дата: Суббота, 27.06.2020, 16:57 | Сообщение № 28 |
|
Andrey_A, да, только разный текст перед тегами... Ладно, будем мыслить.Я своими получаю только последнее значение.
|
|
| |