Я пытаюсь создать специальный формат шаблонов, который должен найти вхождения {{{--example_id--}}}
и заменить это содержимое по отдельности, и получить его по значению в скобках.
Первоначальная попытка состояла в том, чтобы разделить мой путьи я публикую нижеприведенный пример кода, который еще не оптимизирован для нескольких заполнителей и может обрабатывать только один заполнитель за раз.
parse_text() ->
Text = <<"this is text {{{--test_placeholder_1--}}} and this also">>,
% would not work here:
% Text = <<"this is text {{{--test_placeholder_1--}}} and this {{{--test_placeholder_2--}}} also">>,
[_,Tail] = binary:split(Text, [<<"{{{--">>],[global]),
[Id|_] = binary:split(Tail, [<<"--}}}">>],[global]),
Pattern = <<"{{{--", Id/binary, "--}}}">>,
Replacement = get_content(Id),
Result = binary:replace(Text, Pattern, Replacement),
io:fwrite("~p\n", [Result]).
get_content(<<"test_placeholder_1">>)->
<<"test id 1!">>;
get_content(<<"test_placeholder_2">>)->
<<"test id 2!">>;
get_content(_)->
<<"not found text!">>.
Мой вопрос заключается в том, должен ли я оптимизировать этот процесс, чтобыподдержка нескольких заполнителей в одном тексте, или есть более лучший подход для решения подобных проблем?
Cheers!