Parsen Sie Text für Hashtags und ersetzen Sie ihn durch php

8

Ich habe Text mit twitter style #hashtags. Wie würde ich eine Funktion schreiben, um einen Textkörper zu parsen, der eine unbegrenzte Anzahl von #hashtags enthalten könnte, den Text des Hashtags zu nehmen und sie alle mit einem <a href="tag/[hashtag text]">[hashtag text]</a>

zu ersetzen

Ich habe viel darüber nachgedacht, wie man das macht, aber ich bin wirklich schlecht darin, diese Art von Funktionen mit Regex zu schreiben.

Beispieltext:

  

Lorem ipsum dolor sitzt amet, consectetur adipiscing elit. Vivamus #tristique nicht elit eu iaculis. Vivamus eget ultricies Nisi. Vivamus hendrerit bei Mauris condimentum scelerisque. Donec nibh mauris,   pulvinar et #commodo a, porta und tellus. Duis eget ante gravida,   Convallis augue id, Blandit lectus. Mauris euismod commodo mi ut   Fringilla. Sed felis magna, rhoncus vitae mattis varius, sagittis a   Eros. Donec eget porta ipsum. # Mauris sed Mauris Ante. Suspendisse   potenti. Donec ein #pretium #augue, eget hendrerit orci. Ganzzahliger cursus   scelerisque consequat.

    
Amy Neville 21.06.2013, 22:37
quelle

6 Antworten

20

Versuchen Sie Folgendes:

%Vor%

Hier funktioniert es: Ссылка (Klick run).

Regex-Referenz: Leerzeichen oder Anfang der Zeichenfolge , Nicht einfangende Gruppe

Ursprüngliche Quelle: Twitter mit RegExp analysieren

    
Joe 21.06.2013, 22:43
quelle
3

Dies funktioniert mit UTF-8-Codierungstexten und zeigt # (Hash) vor Tags in Inhalt

%Vor%     
Mohamm6d 22.03.2014 08:50
quelle
1

Versuchen Sie Folgendes:

%Vor%

Das wird das drehen: This is a #hashtag

hinein: This is a <a href="tag/hashtag">hashtag</a> ,

Angenommen, Sie haben $your_content_here = 'This is a #hashtag';

    
jraede 21.06.2013 22:41
quelle
0

Es wird Links zu jedem Tag im Text extrahieren und hinzufügen, unabhängig davon, ob es Leerzeichen zwischen Tags gibt.

%Vor%     
kamal deep 15.12.2016 07:39
quelle
0

Die richtige Antwort ist das. Aus mehr als einem Grund. Am wichtigsten ist jedoch, dass Sie eingreifen müssen, wenn Ihre Zeichenfolge URLs enthält. Andernfalls werden alle anderen Antworten ungültig. Siehe Beispiel unten:

%Vor%     
Mike Barwick 28.09.2017 01:10
quelle
-1

Ich habe Joe's und Jraede's Lösung kombiniert.

UTF-8 sicheres und korrektes Hashtag-Format (kein Komma usw.):

%Vor%     
Fabian Schöner 12.11.2014 08:45
quelle

Tags und Links