как получить символ, которому предшествует регулярное выражение - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть некоторый код, и я хочу удалить первое вхождение '}' (или второе, неважно) после определенного регулярного выражения, используя sed или что-то еще. Я не понимаю, как указать на это мое регулярное выражение.

Код, с которым я работаю, выглядит следующим образом:

lore ipsum ^{someWord}} lore ipsum

Регулярное выражение, которое я нашел до сих пор, выглядит так:

\^{[a-zA-z]*}

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете захватить, включая первое } в группе, и сопоставить второе }, которое будет удалено. При замене используйте первую группу захвата.

Pattern

(\^\{[a-zA-Z]*\})\}

Regex demo | Sed demo

Пример

sed -E 's/(\^\{[a-zA-Z]*\})\}/\1/' <<< "lore ipsum ^{someWord}} lore ipsum"

Выход

lore ipsum ^{someWord} lore ipsum

Обратите внимание, что [a-zA-z] соответствует больше , чем [a-zA-Z]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...