[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