Кто-нибудь знает, как сопоставить это регулярное выражение в стиле C ++ с помощью sed? В частности, чтобы разбить его на несколько частей, используя (шаблон) и \ n?
// ZIP code pattern: XXddddd-dddd and variants
regex pat (R"(\w{2}\s*\d{5}(−\d{4})?)");
Например, следующая строка будет соответствовать AB00000-0000 и \ 1, \ 2, \ 3 будет печатать соответствующие подстроки из пространства шаблонов .
РЕШЕНИЕ: Вот ответ sed, который учитывает начальные два символа.
$ echo AB00000-0000 | sed 's/\([[:alpha:]]\{2\}\)[[:space:]]*\([[:digit:]]\{5\}\)\(-\([[:digit:]]\{4\}\)\)\{0,1\}/\1 \2 \4/'
AB 00000 0000
Спасибо