猿问

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

我正在尝试从 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 Atomkraftwerke

Atomkraftwerk Kahl

Sthree Samathwam Olakkeda moodu

Tschingis Aitmatow - Schriftsteller

Dawid Podsiadlo: Malomiasteczkowy

YouTube's Akilah Hughes on #BlackWomenAtWork & Feeding the Buzz

Natsumi hinamatsuriwo mamore dearimasu/Keroro afuro demyaon dearimasu

Americatown

Welcome to Shamatown

Das Ding am Deich - Vom Widerstand gegen ein Atomkraftwerk

Americatown

Palomatown

Heimarbeit und Nebenverdienst/Automatenschwindelei/Nachlassschwindel/Experiment: Falschgeld

#andhiroshimaithoughtweweregoingtohavesomefun

BLACKMAGIC Cinema Camera (Diamaltwerke)

Travis Brasher and Ryan Ellis of TravisMathew

Diamantenwirbel

我打开了一个包含正则表达式详细信息的选项卡,我一遍又一遍地查看它,但我似乎无法确定我的正则表达式如何无法正常工作。


仅供参考,这是我的整个代码:


import csv

import re


with 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)


慕的地6264312
浏览 103回答 1
1回答

慕田峪9158850

对于该示例字符串,您可以考虑到后面的内容A[a-z]*可以是[ -]使用另一个字符类的空格或连字符。A[a-z]*[ -]M[a-z]*[ -]a[a-z]*[ -]t[a-z]*[ -]W[a-z]*正则表达式演示
随时随地看视频慕课网APP

相关分类

Python
我要回答