Python 从CSV文件中搜索IP地址

Python 从CSV文件中搜索IP地址,python,regex,pandas,Python,Regex,Pandas,我有一个CSV文件,其中的列包含几个带有IP地址的字符串。我成功地运行了regex查询,但它在输出中添加了随机字符 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][

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

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”的定义上:

返回字符串中模式的所有非重叠匹配项,作为字符串列表。从左到右扫描字符串,并按找到的顺序返回匹配项如果模式中存在一个或多个组,则返回组列表;如果模式有多个组,这将是一个元组列表。结果中包含空匹配项


因此,它将分别返回您地址中的所有组和数字。

您能给出输入示例吗?[131/0x0083]源名称:Microsoft Windows RemoteDesktopServices RdpCoreTS字符串:['TCP''10.35.50.4:62578']计算机名称:n-dag.com记录编号:26242事件级别:4有效。但产出仍在增长。我怎样才能去掉它?