[docs]@OPERATORS.register_module('clean_ip_mapper')classCleanIpMapper(Mapper):"""Mapper to clean ipv4 and ipv6 address in text samples."""_batched_op=True
[docs]def__init__(self,pattern:Optional[str]=None,repl:str='',*args,**kwargs):""" Initialization method. :param pattern: regular expression pattern to search for within text. :param repl: replacement string, default is empty string. :param args: extra args :param kwargs: extra args """super().__init__(*args,**kwargs)ifpatternisNone:self.pattern=r'(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|'self.pattern+=r'(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.))'self.pattern+=r'{3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|'self.pattern+=r'(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))|'self.pattern+=r'([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}'# ipv6else:self.pattern=patternif((len(pattern)>2)and(pattern.startswith("r'")andpattern.endswith("'")orpattern.startswith('r"')andpattern.endswith('"'))):self.pattern=pattern[2:-1]self.repl=repl