<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _speak_as( self, element, regular_expression, data_property_value, operation ):
 """ Execute a operation by regular expression for element only. :param element: The element. :type element: hatemile.util.html.htmldomelement.HTMLDOMElement :param regular_expression: The regular expression. :type regular_expression: str :param data_property_value: The value of custom attribute used to identify the fix. :type data_property_value: str :param operation: The operation to be executed. :type operation: function """


        children = []
        pattern = re.compile(regular_expression)
        content = element.get_text_content()
        while content:
            matches = pattern.search(content)
            if matches is not None:
                index = matches.start()
                children = operation(content, index, children)

                new_index = index + 1
                content = content[new_index:]
            else:
                break
        if children:
            if content:
                children.append(self._create_content_element(
                    content,
                    data_property_value
                ))
            while element.has_children():
                element.get_first_node_child().remove_node()
            for child in children:
                element.append_element(child)