Я пытаюсь сопоставить «#», за которым следуют буквы, если и только если ему предшествует символ новой строки, пробел или первый символ в строке.Первые два я сделал, но мне сложно найти соответствие, если это первый символ в строке.Я пытаюсь найти применение для '\ A', но не получается просто добавить его в класс, содержащий символы новой строки и пробелы.Что я пропустил?
Регулярное выражение, которое я до сих пор придумал:
from re import findall, escape
from string import punctuation, whitespace
NEWLINE = """\r\n?|\n"""
INVALID_TAG_CHARACTERS = escape(punctuation.replace('-', '').replace('_', '') + whitespace)
VALID_TAGS = r'[\s%s]+#[^%s]+' % (NEWLINE, INVALID_TAG_CHARACTERS)
tags = findall(VALID_TAGS, text)