为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式查找首字母已知的短语?

如何使用正则表达式查找首字母已知的短语?

慕的地6264312 2023-07-18 15:45:22
我正在尝试从 imdb 数据集( https://www.imdb.com/interfaces/ )中查找一些电影。如果我知道标题中每个单词的第一个字符,但不知道实际的标题怎么办?例如,我知道电影标题中每个单词的第一个字母是 A、M、A、T、W。这部电影恰好是《蚁人2:黄蜂女现身》。我使用以下正则表达式来查找电影:re.search('A[a-z]*M[a-z]*A[a-z]*T[a-z]*W', primaryTitle, re.IGNORECASE)但搜寻并没有带回《蚁人2:黄蜂女现身》。这些是我的搜索结果:G�sgen - Ein Film �ber die Volksbewegung gegen AtomkraftwerkeAtomkraftwerk KahlSthree Samathwam Olakkeda mooduTschingis Aitmatow - SchriftstellerDawid Podsiadlo: MalomiasteczkowyYouTube's Akilah Hughes on #BlackWomenAtWork & Feeding the BuzzNatsumi hinamatsuriwo mamore dearimasu/Keroro afuro demyaon dearimasuAmericatownWelcome to ShamatownDas Ding am Deich - Vom Widerstand gegen ein AtomkraftwerkAmericatownPalomatownHeimarbeit und Nebenverdienst/Automatenschwindelei/Nachlassschwindel/Experiment: Falschgeld#andhiroshimaithoughtweweregoingtohavesomefunBLACKMAGIC Cinema Camera (Diamaltwerke)Travis Brasher and Ryan Ellis of TravisMathewDiamantenwirbel我打开了一个包含正则表达式详细信息的选项卡,我一遍又一遍地查看它,但我似乎无法确定我的正则表达式如何无法正常工作。仅供参考,这是我的整个代码:import csvimport rewith open('data.tsv', encoding='utf8') as titles:    titleReader = csv.reader(titles, delimiter='\t')    for title in titleReader:        primaryTitle = title[2]        if re.search('A[a-z]*M[a-z]*A[a-z]*T[a-z]*W', primaryTitle, re.IGNORECASE):            print (primaryTitle)
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

对于该示例字符串,您可以考虑到后面的内容A[a-z]*可以是[ -]使用另一个字符类的空格或连字符。

A[a-z]*[ -]M[a-z]*[ -]a[a-z]*[ -]t[a-z]*[ -]W[a-z]*

正则表达式演示


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信