gpt4 book ai didi

python - 在Python中使用正则表达式删除名称末尾带有 "expn"的MongoDB数据库

转载 作者:行者123 更新时间:2023-12-01 09:33:49 24 4
gpt4 key购买 nike

鉴于 StackOverFlow 上有关正则表达式的问题数量,我很抱歉添加另一个问题,但我似乎无法找出脚本中的错误。它应该遍历我的数据库中的所有集合,并根据它们末尾是否包含字符串“_Clean”采取条件操作。

我很确定我使用了错误的正则表达式。

from pymongo import MongoClient
from bson.son import SON
import re

db = MongoClient().guns
pattern = re.compile("(?!)(_Clean)\Z")

for collection in db.collection_names():
if pattern.match(str(collection)):
print(str(collection))
print("No, I should be dropped")
else:
print("Yay, I am clean")
print(str(collection))

我收到的输出是:

Yay, I am clean
Accidental_Injuries_Clean
Yay, I am clean
Massshootings_Clean
Yay, I am clean
Accidental_Injuries_Teens_Clean
Yay, I am clean
Officer_Involved_Shootings_Clean
Yay, I am clean
Accidental_Deaths_Children
Yay, I am clean
Accidental_Injuries_Children_Clean
Yay, I am clean

非常感谢大家抽出宝贵的时间,非常感谢你们提供的任何建议。

最佳答案

我不认为你真的需要这里的正则表达式。您可以只使用基本的字符串切片:

dbs = ['Accidental_Injuries_Clean',
'Massshootings_Clean',
'Accidental_Injuries_Teens_Clean',
'Officer_Involved_Shootings_Clean',
'Accidental_Deaths_Children',
'Accidental_Injuries_Children_Clean']

for db in dbs:
if db[-6:] == '_Clean':
print('Delete: ', db)

输出:

Delete:  Accidental_Injuries_Clean
Delete: Massshootings_Clean
Delete: Accidental_Injuries_Teens_Clean
Delete: Officer_Involved_Shootings_Clean
Delete: Accidental_Injuries_Children_Clean

请注意,您当前的正则表达式不起作用,因为您正在对要查找的字符串使用负向前查找。这是一个有效的方法:

^.*_Clean$

关于python - 在Python中使用正则表达式删除名称末尾带有 "expn"的MongoDB数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49713387/

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