import re


def interpolate_replacements(text, expr_replacements):
    """
    Given a text with replacement markers, and a dictionary
    of replacement markers to expression objects, returns
    a list containing text/expression objects.
    """
    if not expr_replacements:
        return [text]

    replacement_strings = list(expr_replacements.keys())
    splitter = re.compile(
        "({0})".format("|".join(re.escape(r) for r in replacement_strings))
    )
    split_text = [p for p in splitter.split(text) if p]
    return [expr_replacements.get(t, t) for t in split_text]