[英]Regex to extract last two octets of IP address (3rd and 4th Octet) in Google Sheets
我需要帮助以使用正则表达式提取IP 地址(第 3 和第 4 个八位字节)的最后两个八位字节。
此正则表达式用于提取前两个八位字节(第一个和第二个八位字节) :
(1?\d\d?|2[0-4]\d|25[0-5])
你可以在这里试试 https://rubular.com/r/ynDa71Zd1M2f24
但我不知道如何提取第 3 和第 4 个八位字节。 任何人都可以帮助我吗?
谢谢,
你可以使用这样的东西:
(?P<first>\d{2,3})\.(?P<second>\d{1,3})\.(?P<third>\d{1,3})\.(?P<fourth>\d{1,3})
或者,如果您没有命名捕获组支持,请使用:
(\d{2,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
这会将您的字符串分成四个不同的组,每个组包含 ip 的一个八位字节。
import re
pattern = r"(?P<first>\d{2,3})\.(?P<second>\d{1,3})\.(?P<third>\d{1,3})\.(?P<fourth>\d{1,3})\n?"
matcher = re.compile(pattern)
ips = """
192.168.1.1
192.168.1.2
"""
result = matcher.findall(ips) # [('192', '168', '1', '1'), ('192', '168', '1', '2')]
例如,您可以使用一个模式来匹配 ip 之类的格式,并对包括点在内的前 2 个部分使用捕获组。
在替换中使用捕获组值$1
后跟0.0/16
=REGEXREPLACE(A2,"^(\d{1,3}\.\d{1,3}\.)\d{1,3}\.\d{1,3}$","$10.0/16")
查看正则表达式演示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.