Een hashtag is een metadata-tag die gebruikers van sociale media in hun berichten insluiten als kruisverwijzing naar andere berichten over hetzelfde onderwerp. Een zoekopdracht op Instagram1 naar de hashtag #bluesky2 levert bijvoorbeeld alle berichten op die naar deze hashtag verwijzen. De hashtag zelf bestaat uit een hekje (#: engels: hash) gevolgd door één of meer letters (hoofdletters A–Z en kleine letters a–z), cijfers (0–9) en underscores (_). Een hashtag bevat dus nooit spaties.
Het was de Amerikaanse tech blogger en productconsulent Chris Messina die in 2007 met een tweet3 voorstelde om hashtags te gaan gebruiken op Twitter4.
Messina deed bewust geen poging om het gebruik van hashtags te patenteren, omdat hij vond5 dat
they were born of the internet, and owned by no one
Hashtags raakten verankerd in de cultuur van Twitter6 en verschenen al snel ook op Instagram, Facebook7 en YouTube8. In juni 2014 werd het woord hashtag toegevoegd aan de Oxford English Dictionary9 als
a word or phrase with the symbol # in front of it, used on social media websites and apps so that you can search for all messages with the same subject
Elke regel van het tekstbestand hashtags.txt10 bevat een patroon $$p$$ uit de verzameling $$\mathcal{P}$$ van alle strings die bestaan uit één of meer hashtags die telkens van elkaar gescheiden worden door één enkele spatie. Daarbij bestaat een hashtag uit een hekje (#) gevolgd door één of meer letters (hoofdletters A–Z en kleine letters a–z), cijfers (0–9) en underscores (_). Gevraagd wordt:
Bepaal zo kort mogelijke reguliere expressies voor de volgende deelverzamelingen van $$\mathcal{P}$$. Bij het vergelijken van letters mag geen onderscheid gemaakt worden tussen hoofdletters en kleine letters: zo stellen m en M bijvoorbeeld dezelfde letter voor.
$$\mathcal{P}_1 = \{\,p \in \mathcal{P}\,|\,p\ $$heeft een hashtag met exact drie underscores$$\,\}$$
voorbeelden: | |
$$\mathcal{P}_2 = \{\,p \in \mathcal{P}\,|\,$$elke hashtag van $$p$$ bevat een cijfer dat voorafgegaan wordt door de letter op die positie in het alfabet$$\,\}$$
opmerking: hierbij staat de letter A op positie 0 in het alfabet, de letter B op positie 1, …
voorbeelden: | |
$$\mathcal{P}_3 = \{\,p \in \mathcal{P}\,|\,$$minstens twee hashtags in $$p$$ starten met een letter vlak na het hekje en eindigen met dezelfde letter$$\,\}$$
voorbeelden: | |
$$\mathcal{P}_4 = \{\,p \in \mathcal{P}\,|\,$$de laatste letter van een hashtag in $$p$$ is nooit de eerste letter van de volgende hashtag$$\,\}$$
voorbeelden: | |
Geef telkens een Unix commando waarin de reguliere expressie gebruikt wordt door een commando uit de grep familie om enkel de regels van het tekstbestand naar stdout te schrijven waarvan het patroon $$p$$ behoort tot $$\mathcal{P}_i\ (i = 1, 2, 3, 4)$$.
Bepaal als volgt de woorden $$w_1\ w_2\ w_3\ w_4$$ van een geheime boodschap:
woord $$w_1$$ bestaat uit de kleine letters op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_1 \cap \mathcal{P}_2$$
woord $$w_2$$ bestaat uit de kleine letters op de unieke regel waarvan $$p$$ behoort tot $$ \mathcal{P}_2 \cap \mathcal{P}_3$$
woord $$w_3$$ bestaat uit de kleine letters op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_3 \cap \mathcal{P}_4$$
woord $$w_4$$ bestaat uit de kleine letters op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_4 \cap \mathcal{P}_1$$
Geef telkens een Unix commando waarin de reguliere expressies voor de verzamelingen $$\mathcal{P}_i\ (i = 1, 2, 3, 4)$$ gebruikt worden door commando's uit de grep familie om woord $$w_j\ (j = 1, 2, 3, 4)$$ op te zoeken in het tekstbestand en uit te schrijven naar stdout. Hierbij is het niet toegelaten om woord $$w_j$$ letterlijk uit te schrijven (bv. echo $$w_j$$).