読者です 読者をやめる 読者になる 読者になる

カイワレの大冒険 Third

技術的なことや他愛もないことをたまに書いてます

正規表現を使ってhostnameを抽出する

プログラミング プログラミング-Python

完全に自分用のメモですが、FQDNにhostnameが含まれるようなドメインがあった場合に、hostnameだけを抽出したくなったので、そのときのメモ。

Pythonで書くとこんな感じ。

def extract_hostname(fqdn):
    __pattern = r'([^\\.]+)'
    regex = re.compile(__pattern, re.MULTILINE)
    for match in regex.finditer(fqdn):
        return match.group(1)

__patturnの箇所を丁寧に説明すると、

  • 「ピリオドを含まない文字が続き、ピリオドまで」を一括りにしたい
  • ピリオドをエスケープしたいので、「バックスラッシュ」「ピリオド」となる
  • ただ、バックスラッシュをエスケープしないといけないので、「バックスラッシュ」「バックスラッシュ」「ピリオド」となる
  • そして、それが含まれないので、カッコとハットを使って否定する。
  • そして「プラス」を使い、1回以上繰り返されることを表現。

ぱっと見ると、ちょっと複雑かもしらん。。。