【发布时间】:2020-03-29 02:07:21
【问题描述】:
我有一个 csv 推文数据库,我需要在其中搜索特定短语和单词的列表。 例如,我正在搜索“全球变暖”。我不仅想找到“全球变暖”,还想找到“全球变暖”、“全球变暖”、“#globalwarming”、“#Globalwarming”、“#GlobalWarming”等。所以,所有可能的形式。
我怎样才能在我的代码中实现正则表达式来做到这一点?或者也许还有其他解决方案?
with open('filedirectory.csv', 'w', newline='') as output_file:
writer = csv.writer(output_file)
with open('filedirectory1.csv', 'w', newline='') as output_file2:
writer2 = csv.writer(output_file2)
with open('filedirectory2.csv') as csv_file:
csv_read = csv.reader(csv_file)
for row in csv_read:
search_terms = ["global warming", "GLOBAL WARMING", etc.]
if any([term in row[2] for term in search_terms]):
writer.writerow(row)
else:
writer2.writerow(row) ``
【问题讨论】:
-
你可以通过强制跳过大写和小写:例如
row = row.lower()。那么正则表达式就是这样的:#?global\s*warming -
建立一个匹配您提供的所有表格的正则表达式是可能的。看看这个website 它很有帮助。我建议使用不区分大小写的正则表达式,在全球和变暖之间使用可选字符(# 和空格)。