文字列/行内の単語を見つけ、次のタグを使用してその単語をハイライトするカスタムHTMLページのPythonでスクリプトを書いた。ここでinstanceは単語検索。次のような結果とPython - 正規表現マッチに基づいて文字列にHTMLタグを挿入
<b><font color=\"red\">"+instance+"</font></b>
:私は(大文字と小文字を区別しない)単語を見つける必要があり
はのは、ポート、港、サポート、サポート、サポートなどをすることができ、文字列の中に「ポート」を言わせて、それは十分に簡単です。
pattern = re.compile(word, re.IGNORECASE)
find_all_instances = pattern.findall(string_to_search)
しかし、私の文字列は、多くの場合、単一の行に2つの以上のインスタンスを含む、と私は例を変更せずに、それらのインスタンスのそれぞれに <b><font color=\"red\">"+instance+"</font></b>
を追加する必要があります。私のアプローチと
問題は、複数の同じ試合でも、文字列の中に見つけることができます ながら、私は、findAllの(完全一致)で見つけられたインスタンスのそれぞれを超えるitterateしようとしていますということです。
for instance in find_all_instances:
second_pattern = re.compile(instance)
string_to_search = second_pattern.sub("<b><font color=\"red\">"+instance+"</font></b>", string_to_search)
これは、次のような結果になります。私は
<b><font color="red">Http</font></b>
を必要とするとき
<b><font color="red"><b><font color="red"><b><font color="red">Http</font></b></font></b></font></b></font>
私が考えていた私はの正確な部分を見つけることができたならば、私はこれを避けることができるだろうパターンがそれを行う瞬間に代わる文字列 しかし、私はそのような使用法の例を見つけることができませんでした。これは、私が何かを間違ってやっていると信じさせる。
をすべての一致(大文字と小文字を区別しない)の代わりにinstance
を置換せずに挿入する方法がある場合は、感謝します。
ありがとうございます。それは期待どおりに動作します。 – iluzek