ОБСУЖДЕНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ
|
|
Andrey_A | Дата: Четверг, 19.07.2012, 02:29 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
ОБСУЖДЕНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ
В этой теме обсуждаются различные вопросы, связанные с регулярными выражениями
|
|
| |
Andrey_A | Дата: Четверг, 31.07.2014, 19:36 | Сообщение № 16 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 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
Город: Сочи, Хоста
Сообщений: 7191
Награды: 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
Город: Сочи, Хоста
Сообщений: 7191
Награды: 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
Город: Сочи, Хоста
Сообщений: 7191
Награды: 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
Город: Сочи, Хоста
Сообщений: 7191
Награды: 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
Город: Сочи, Хоста
Сообщений: 7191
Награды: 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, да, только разный текст перед тегами... Ладно, будем мыслить.Я своими получаю только последнее значение.
|
|
| |
ilya_w | Дата: Суббота, 14.12.2024, 15:51 | Сообщение № 29 |
Рядовой
На сайте с: 14.12.2024
Город: Санкт-Петербург
Сообщений: 6
|
Здравствуйте. Решил зарегистрироваться, чтобы попросить помощи. Занимаюсь разработкой программ для станков с ЧПУ. Часто приходится переделывать эти самые программы на разные системы, которые имеют разные языки, если можно так выразиться. Это текстовые файлы, которые иногда нужно немного, или основательно подредактировать. Если коротко, возникла проблема в создании регулярного выражения, которое должно находить в строке слово G40, удалять это слово из строки и вставлять его в начало предыдущей строки. И так во всем тексте. Ставить различные программы на рабочий компьютер не имею возможности, приходится обходиться подручными средствами. Такая вот проблемкаа, что посоветуете?
|
|
| |
Andrey_A | Дата: Суббота, 14.12.2024, 18:07 | Сообщение № 30 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата ilya_w ( ) что посоветуете? При любых текстовых преобразований я всегда прошу прислать файл ДО и ПОСЛЕ (что должно быть вначале и в конце) вышлите в личку в архиве - тогда смогу дать ответ
|
|
| |