私は正規表現 (正規表現) にかなり慣れていないので、文字列を作成するのに少し助けが必要です。私はそれをほとんど理解していますが、一致させる必要のあるテキストに変数があり、その後にオプションのフレーズが続くと困惑しました。
テキストが「turn $1 [the] lights」のようにフォーマットされているとします。ここで、「$1」は必要な変数ですが、「the」は含めることも除外することもできます。次の宣伝文句「turn (.+) (?:the)?\s*lights」を試してみました。これは、「ライトをオンにする」で機能します。
>>> re.match("turn (.+) (?:the)?\s*lights", "turn on lights").groups()
("on",)
しかし、「the」を含めて「turn on the lights」と一致させようとすると、「on the」が変数として取得されます。
>>> re.match("turn (.+) (?:the)?\s*lights", "turn on the lights").groups()
("on the",)
これは正規表現ライブラリで達成できるものですか? わかりにくい質問で申し訳ありませんがよろしくお願いします!