Wie man ein Pfund (#) Symbol in einer Regex in PHP (für Hashtags) zusammenbringt

8

Sehr einfach, ich muss das # -Symbol mit einem Regex übereinstimmen. Ich arbeite an einem Hashtag-Detektor.

Ich habe versucht, in Google und im Stapelüberlauf zu suchen. Ein verwandter Beitrag ist hier , aber da er das # -Symbol aus der Zeichenkette entfernen wollte, verwendete er keine Regex.

Ich habe versucht, die regexes /\b\#\w\w+/ und /\b#\w\w+/ und sie funktionieren nicht und wenn ich die # entferne, erkennt es das Wort.

    
J-Rou 23.02.2012, 21:51
quelle

4 Antworten

5

Du musst ihm nicht entkommen (es ist wahrscheinlich die \b , die es abwirft):

%Vor%     
webbiedave 23.02.2012, 21:56
quelle
10

# hat in einer Regex keine spezielle Bedeutung, es sei denn, Sie verwenden es als Trennzeichen. Also leg es einfach rein und es sollte funktionieren.

Beachten Sie, dass \b eine Wortgrenze erkennt, und in #abc ist die Wortgrenze nach # und vor abc . Daher müssen Sie verwenden \b ist überflüssig und Sie brauchen nur #\w\w+ .

    
Niet the Dark Absol 23.02.2012 21:57
quelle
2

Mit dem Kommentar zur vorherigen Antwort möchten Sie vermeiden, dass x#x übereinstimmt. In diesem Fall benötigen Sie nicht \b , sondern \B :

\B#(\w\w+)

(wenn Sie wirklich zwei oder mehr Wortzeichen nach dem # brauchen).

% \B bedeutet NICHT-Wortgrenze, und da # kein Wortzeichen ist, stimmt das genau überein, wenn das vorherige Zeichen kein Wortzeichen ist.

    
Lasse Nielsen 17.06.2013 06:44
quelle
0

Sie könnten den folgenden Regex verwenden: /\#(\w+)/ , um einen Hashtag nur mit dem Hashtag-Wort abzugleichen, oder: /\#\w+/ stimmt mit dem gesamten Hashtag einschließlich Hash überein.

    
Highway of Life 23.02.2012 21:57
quelle

Tags und Links