見出し画像

https://の//のスペーシングと正規表現

フォントによってhttps://の//のスペーシングが気になることがあります。

気にならないフォントを使うか、InDesignであれば正規表現スタイルで解決します。

このフォントでは「トラッキング:-200」に設定してみました。

「http」もカバーするには、次のように設定します。

(?<=[https:|http:])/

Yusuke S.さんからコメントいただきました。

うーん…

と思ったところ、「https?:\K/」で行けるよと説明いただきました。

https?:\K/

参考記事も紹介いただきました!ありがとうございます!

ChatGPTの解説

うーん、まだまだ正規表現、奥が深い!!!

この正規表現パターン https?:\K/ は、特定の文字列パターンにマッチしつつ、部分的にマッチした部分を除外するために使われます。それぞれの要素を順に解説します。
要素ごとの解説
1. https?:
• これは http または https にマッチします。
• s? の部分は s があってもなくても良いことを示します。つまり、http または https どちらにもマッチするという意味です。
2. ::
• これはコロン : の文字にマッチします。URLにおいて、http または https の後に続くコロンの部分にマッチします。
3. \K:
• これは Perl 互換の正規表現 (PCRE) で使用される特殊なシーケンスで、マッチした部分の先頭をリセットする役割を持ちます。
• \K の前にマッチした部分 (https?:) は最終的なマッチ結果には含まれません。これにより、マッチの開始点が \K の後から再開されます。
4. /:
• これはスラッシュ / にマッチします。URLにおけるスラッシュ (/) の部分です。
全体の解説
この正規表現は、次のような使い方を意図しています。
• https? にマッチして、その後の : までを正規表現エンジンに認識させつつ、最終的なマッチ結果には含めないようにします。
• \K を使うことで、その前までのマッチをリセットし、/ からマッチを再開します。
• 結果として、https:// や http:// の部分をスキップし、その後のスラッシュ / のみをキャプチャすることができます。


• 入力文字列: https://example.com
• 正規表現の動作: https:// の部分は認識されますが、マッチ結果には含まれません。最終的に、最初の / にマッチします。
この正規表現は、http:// や https:// を飛ばして、その後のパス部分にだけフォーカスしたい場合に有用です。

ものかのさんから

さらに、ものかのさんからコメントいただきました。
なるほど、肯定後読み内で|を使う場合、[]は不要なんですね!

mars_teruさんからコロンブスの卵的な解決方法をご提示いただきました!!!

/(?=/)

そもそも

フォントの制作時期によって、//が連続することを想定されていなかったのかもしれませんね… 
ペアカーニングが効けば、がんばらなくて解決です。

ここから先は

0字
月に10-20本くらいの記事を投稿しています。定期購読されると、更新のお知らせを受け取ったり、マガジン限定記事やサンプルファイルをダウンロードできます。 購読を開始した月に更新された記事から読むことができます(初月無料)。

DTP Transit 定期購読マガジン

¥100 / 月 初月無料

マガジン限定記事やサンプルファイルをダウンロードできます。

定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5