gpt4 book ai didi

python - 从 CSV 文件中搜索 IP 地址

转载 作者:行者123 更新时间:2023-11-28 17:55:53 24 4
gpt4 key购买 nike

我有一个 CSV 文件,其中的列包含几个带有 IP 地址的字符串。我成功运行了正则表达式查询,但它在输出中添加了随机字符。

descr = df.loc[:, 'desc']

arr = []


pat = re.compile("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")

for i in descr:

test = pat.findall(i)
arr.append(test)

df["IPA"] = arr

它提供 IP 地址输出,但我希望输出为 10.35.50.4 等[(10, 35, 50, 4)][(10, 35, 50, 3)]

最佳答案

您需要将您的组(括号内的任何内容)转换为非捕获组。您可以通过在打开括号后立即添加一个“?:”来做到这一点。

pat = re.compile("(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")

原因写在函数“findall”的定义上:

Return all non-overlapping matches of pattern in string, as a list of strings. The string is scanned left-to-right, and matches are returned in the order found. If one or more groups are present in the pattern, return a list of groups; this will be a list of tuples if the pattern has more than one group. Empty matches are included in the result.

因此它会分别返回您地址中的所有组和号码。

关于python - 从 CSV 文件中搜索 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58493461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com