フレーズのリスト (ユーザーが入力) を持っています。テキスト ファイルでそれらを見つけたいと思います。たとえば、次のようになります。
titles = ['Blue Team', 'Final Match', 'Best Player',]
text = 'In today Final match, The Best player is Joe from the Blue Team and the second best player is Jack from the Red team.'
1./ これらのフレーズのすべての出現箇所を次のように見つけることができます
titre = re.compile(r'(?P<title>%s)' % '|'.join(titles), re.M)
list = [ t for t in titre.split(text) if titre.search(t) ]
(簡単にするために、完全な間隔を想定しています。)
2./ これらのフレーズの変形例、たとえば「ブルー チーム」、「ファイナル マッチ」、「ベスト プレーヤー」なども検索できます。
ただし、「bluE tEAm」など、入力としてどのように入力されたかに関係なく、テキスト内の「Blue team」などの最初の文字が大文字の入力フレーズのバリアントのみを検索するように制限したいと考えています。
フレーズの一部の re.I フラグを「ブロック」するために何かを書くことは可能ですか? 疑似コードでは、「[B]lue Team|[F]inal Match」のようなものを生成すると想像します。
注: 私の主な目標は、たとえば、テキスト内の入力フレーズの頻度を計算することではなく、それらの間または周囲のテキスト フラグメントを抽出して分析することです。