SEO フレンドリーな URL を作成するために、スペース、タブ、改行、コンマ、アンダースコアをダッシュに置き換えるテンプレート タグを作成したいと考えています。
re.sub('\s+', '-', str)
このコード行は、スペースをダッシュに置き換え、次のようにします。
re.sub('(?<=[,.?!\t\n ])+', '-', str)
このコード行はスペースをダッシュに置き換える必要が?<=[,.?!،
ありますが、そうではありません。
内蔵slugify
フィルターの使用を検討しましたか?
2 番目の式の問題は、肯定的な後読み ( ?<=
) を使用していることです。
"ゼロ幅の正の後読み。先読み内のパターンがその位置 (つまり、その位置の左側) で終了する場合に一致する場合、その位置で一致します。
以下はおそらくあなたがやろうとしていたことです:
re.sub('[,.?!\t\n ]+', '-', s)
これは、一連の文字,.?!\t\n
を単一のダッシュに置き換えています。