поиск и замена

Russian main discussion
  • Author
  • Message
Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

VladSh
Во-первых, не прибедняйтесь ;)
Во-вторых, если есть файл с инструкцией (а он есть), то держать всё в памяти и не требуется. Я и половины метасимволов не знаю, притом что вся-то инструкция -- это два экрана текста. (И не забудем, что в инструкцию иногда изменения вносятся).
В-третьих, даже все подзабыв, разобраться самому почти всегда оказывается быстрее, нежели запостить вопрос и дождаться на него ответа (сложные случаи потому и сложные, что они -- большая редкость). Ответ, кстати, не факт что дадут!
Ну и наконец, "разобраться без посторонней помощи" не только полезно, но ещё и просто приятно.
Так не будем же отказывать себе в столь безобидном удовольствии :)

Offline
Posts: 6
Joined: Thu Aug 31, 2017 9:13 am
Contact:

Post by Alex45orp »

VladSh wrote:Alex45orp
С этим надо постоянно работать, иначе через месяц всё выветривается из памяти. У меня точно также, - начинаешь разбираться, решишь какую-нибудь совсем простенькую задачку, а следующая может быть появится через пол года, если не больше, потому с каждым разом знания опять на нуле. Хорошо тем, у кого с этим работа связана, потому что личного времени всем этим постоянно заниматься не осталось никакого...
готов подписаться под данной сентенцией на 90%, однако 10% оставляю на свою отсталость от компьютерной(программистской) грамотности ...
opk44 wrote:VladSh
(сложные случаи потому и сложные, что они -- большая редкость)
а мой случай, на Ваш взгляд, достаточно сложен(это для понимания процесса кодирования) - или это "к слову пришлось"?
opk44 wrote:VladSh
Ну и наконец, "разобраться без посторонней помощи" не только полезно, но ещё и просто приятно.
а вот здесь даю 100%, и очень хочу "разобраться без посторонней помощи" - но ... (с кем бы посоветоваться ...)?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Alex45orp,
Раз никто пока не предложил воспользоваться online сервисами по регулярным выражениям, то я это предложу :)
Вот этот выглядит достаточно неплохо, показывая текстовые описания вводимого регулярного выражения:
https://regex101.com/
Уверен, есть и русскоязычные сайты с подобным функционалом.
* Примечание: поскольку существует несколько "движков" регулярных выражений, возможны ситуации, когда синтаксис регулярного выражения в AkelPad будет не на 100% совпадать со стандартом PCRE или другим. Однако на первых порах, при изучении базового синтаксиса регулярных выражений, вы вряд ли столкнётесь с подобными расхождениями.

Offline
Posts: 40
Joined: Wed Mar 23, 2016 1:18 pm

Post by Dimsok »

Как поменять местами элементы строк с учётом разделителей?

В первом случае слово табуляция слово 2. Должно стать слово 2 табуляция слово.

Во втором случае так же, только вместо табуляции дефис: слово - слово 2.

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Dimsok

Code: Select all

Что: (слово)(\t)(слово 2)
Чем: \3\2\1

Code: Select all

Что: (слово)( ?- ?)(слово 2)
Чем: \3\2\1

Offline
Posts: 40
Joined: Wed Mar 23, 2016 1:18 pm

Post by Dimsok »

Как с помощью регулярных выражений можно заменить:
[ti:слово 1]
на:
Title: слово 1
?

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Dimsok wrote:Как с помощью регулярных выражений можно заменить:
[ti:слово 1]
на:
Title: слово 1
?
Что:

Code: Select all

(\[ti:)(\S*\s\d)\]
Чем:

Code: Select all

Title: \2

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Dimsok

Code: Select all

Что: \[ti:([^\]]*+)\]
Чем: Title: \1

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

YuS
Непонятное мне место - соседство символов "*+". Можно пояснить этот момент?

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

opk44 wrote:YuS
Непонятное мне место - соседство символов "*+". Можно пояснить этот момент?
- Квантификаторы регулярных выражений (*, +, {n,}) являются по умолчанию жадными. Чтобы сделать их нежадными, используется "?" после квантификатора, например, "\d*?". Чтобы сделать их сверхжадными, используется "+" после квантификатора, например, "\d*+".
- Использование сверхжадных квантификаторов увеличивает скорость выполнения выражения.

Code: Select all

(\[ti:)(\S*\s\d)\]
Тут будет захвачено максимальное число символов, в таком, например, тексте:

Code: Select all

[ti:слово1][ti:слово2][ti:слово 3]
т.к. имхо, скорее всего, слово 1 - не дословный шаблон (набор непробельных_символов+пробельный_символ+число), а пример того, что там может находиться, что угодно.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

YuS
Благодарю за науку.

Offline
Posts: 40
Joined: Wed Mar 23, 2016 1:18 pm

Post by Dimsok »

Спасибо.

Offline
Posts: 40
Joined: Wed Mar 23, 2016 1:18 pm

Post by Dimsok »

А есть какая-нибудь программа, которая помогала бы в составлении выражений? Например, ввёл что нужно найти и получил хотя бы примерный результат. Пробовал когда-то regex buddy и ещё что-то похожее, но они похоже не для того.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Dimsok wrote:А есть какая-нибудь программа, которая помогала бы в составлении выражений?
Смотри, например, третий пост на этой же странице.
Если же условия совсем "спартанские", то скачиваете коллекцию скриптов для AkelPad от KDJ.
В первую очередь будут интересовать "FindReplaceEx.js" и "RegExpTestJS.js".
Dimsok wrote:Например, ввёл что нужно найти и получил хотя бы примерный результат.
Что-то мне подсказывает, что главная проблема при составлении регэкспа - это понять и сформулировать, "а что собственно нужно-то?", а вовсе не отсутствие вспомогательных программ.
Dimsok wrote:Пробовал когда-то regex buddy и ещё что-то похожее, но они похоже не для того.
А для чего? Вот бы узнать!

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

opk44 wrote:
Dimsok wrote:Пробовал когда-то regex buddy и ещё что-то похожее, но они похоже не для того.
А для чего? Вот бы узнать!
Ой, я лусну! :D

Действительно, описание программы
Learn, Create, Understand, Test, Use and Save Regular Expressions with RegexBuddy
(перевод: Изучаем, Создаём, Понимаем, Тестируем, Используем и Сохраняем Регулярные Выражения с RegexBuddy)
как бы намекает ))
Post Reply