考虑到StackOverFlow上regex的问题太多,我很抱歉再添加一个问题,但我似乎无法找出脚本中的错误。它应该遍历数据库中的所有集合,并根据它们是否在末尾包含字符串“\u 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
非常感谢你们抽出时间,我很感激你们的建议
我不认为你真的需要正则表达式。您可以使用基本的字符串切片:
输出:
请注意,您当前的正则表达式不起作用,因为您正在对要查找的字符串使用负向前看。这是一个有效的方法:
^{}
相关问题 更多 >
编程相关推荐