Return string with `save_filter` regex entries removed.  For example:

    If `filters` is not provided, it will be pulled from minion config,
    minion grains, minion pillar, or master config. Default return value
    if no filters found is the original cmd_output string.

    .. code-block:: python

        _regex_iptables_save(cmd_output, ['-A DOCKER*'])

def _regex_iptables_save(cmd_output, filters=None):
    '''
    Return string with `save_filter` regex entries removed.  For example:

    If `filters` is not provided, it will be pulled from minion config,
    minion grains, minion pillar, or master config. Default return value
    if no filters found is the original cmd_output string.

    .. code-block:: python

        _regex_iptables_save(cmd_output, ['-A DOCKER*'])
    '''
    # grab RE compiled filters from context for performance
    if 'iptables.save_filters' not in __context__:
        __context__['iptables.save_filters'] = []
        for pattern in filters or _conf_save_filters():
            try:
                __context__['iptables.save_filters']\
                    .append(re.compile(pattern))
            except re.error as e:
                log.warning('Skipping regex rule: \'%s\': %s',
                            pattern, e)
                continue

    if __context__['iptables.save_filters']:
        # line by line get rid of any regex matches
        _filtered_cmd_output = \
            [line for line in cmd_output.splitlines(True)
             if not any(reg.search(line) for reg
                        in __context__['iptables.save_filters'])]
        return ''.join(_filtered_cmd_output)

    return cmd_output