Wie erkennen Sie Wörter, die innerhalb eines NSString mit "@" oder "#" beginnen?

8

Ich baue eine Twitter-iPhone-App und muss erkennen, wenn Sie innerhalb einer Zeichenfolge in einer UITextView einen Hashtag oder eine @ -mention eingeben.

Wie finde ich alle Wörter, denen in einem NSString die Zeichen "@" oder "#" vorangestellt sind?

Danke für Ihre Hilfe!

    
Ramon 27.04.2012, 15:34
quelle

6 Antworten

22

Sie können die Klasse NSRegularExpression mit einem Muster verwenden wie # \ w + (\ w steht für Wortzeichen).

%Vor%     
Vadim Yelagin 27.04.2012, 15:43
quelle
2

Sie können eine Zeichenfolge in Teile (Wörter) zerlegen, indem Sie componentsSeparatedByString verwenden: und dann das erste Zeichen jedes einzelnen prüfen.

Oder, wenn Sie dies während der Eingabe des Benutzers tun müssen, können Sie einen Delegaten für die Textansicht bereitstellen und textView implementieren: sentChangeTextInRange: replacementText: um die eingegebenen Zeichen anzuzeigen.

    
Phillip Mills 27.04.2012 15:41
quelle
1

Dafür wurde eine Kategorie von NSString erstellt. Es ist sehr einfach: Finde alle Wörter, gebe alle Wörter zurück, die mit # beginnen, um die Hashtags zu erhalten.

Relevantes Codesegment unten - benennen Sie diese Methoden & amp; die Kategorie auch ...

%Vor%     
n13 30.03.2014 15:53
quelle
0
%Vor%     
Tiziano 27.04.2012 15:40
quelle
0

So können Sie es mit NSPredicate

machen

Sie können im UITextView-Delegat Folgendes versuchen:

%Vor%

wobei _words, _searchResults und _oldArray NSArrays sind.

    
Anil 05.05.2014 07:20
quelle
0

Verwenden Sie den folgenden Ausdruck, um @ oder # in der Zeichenfolge

zu erkennen %Vor%     
i.AsifNoor 18.12.2015 13:12
quelle