正規表現を使ってhostnameを抽出する
完全に自分用のメモですが、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回以上繰り返されることを表現。
ぱっと見ると、ちょっと複雑かもしらん。。。