Как выполнить поиск с помощью регулярного выражения?
Можно ли найти через регулярное выражение все необычные словосочетания в тексте, такие как:
{color.RED}[text.test] - info:{color.END}
.
Я хочу как-то заменить {color.RED}
на [color=ffff00]
, а {color.END}
на [/color]
.
Пример текста:
txt = "{color.RED}[проверка.значения] - нумерация: {color.END}профик натуры {color.BOARD}пример вывода{color.END} золотистый"
Вот это не трогать в тексте - {color.BOARD}пример вывода{color.END}
.
Ответы (1 шт):
Уффф, вот такое наколякал. Искомая строка:
\{color.RED\}([^\{]*)\{color.END\}
То, на что мы заменяем (replace
):
[color=ffff00]$1[\color]
Главная идея заключается в том, чтобы выделить всё, что находится между двумя тэгами (т.е. между символами }
и {
), в отдельную группу. Для этого используем круглые скобки. Всё, что попадает в круглые скобки, можно в параметре replace вставлять как $1
- это первая группа. Таких групп можно много наделать, но в данной задаче одной хватит. Остальное дело обычного найти-замени: пишем что хотим видеть до и после нашей группы.
Внутри группы:
[^\{]*
Используем возможность регулярных выражений искать все символы, кроме [^любой символ
]. Нам нужно искать до первого попавшегося символа фигурная скобка, поэтому и указываем её как единственную, кого не хотим видеть в нашей группе.