2017-03-03 1 views
-2

Ziel ist es, Zeichen oder eine Gruppe von Zeichen innerhalb einer Zeichenfolge zu finden. zum Beispiel sample_input="this+is-a;{example--;{string}"Finden von Zeichen und Wörtern in Strings ohne Regex oder Nltk in Python 3.5

ich muss separat erhalten: dies ist ein, Beispiel und String. Das heißt, wenn eine Gruppe von Zeichen zusammen erscheint, möchte ich die Gruppe sonst, wenn das Auftreten eines einzelnen Zeichens ist, dann brauche ich es.

Ist es möglich, es ohne Nltk oder Regex zu tun?

Eine Art Lösung ist es, die Eingaben in einer Zeichenfolge zu geben und file.readlines() zu verwenden, um die Zeichen Zeile weise zu erhalten und .isalpha() Methode zu verwenden, um sie zu überprüfen ... Gibt es einen besseren Weg?

+0

ich bin unklar, was Sie Fragen. Wenn Sie wissen wollen, ob ein bestimmter Teilstring in einem String enthalten ist, können Sie einfach Folgendes tun: 'if 'Teilstring' in String:' – Lost

+0

Zum Beispiel, wenn "a" alleine erscheint, will ich "a". – gku1123

+0

Aber wenn "allein" in String ist, brauche ich alleine ohne spezielle Suche – gku1123

Antwort

0

Dies ist einfach mit regulären Ausdrücken (die Re-Bibliothek in Python) zu tun, aber Sie haben es so gewollt, ohne, also hier ist eine Methode, die es tun können:

def split_on_nonalpha(s): 
    cur_str = '' 
    for c in s: 
     if not c.isalpha(): 
      if len(cur_str) > 0: 
       yield cur_str 
       cur_str = '' 
     else: 
      cur_str += c 
    if len(cur_str) > 0: 
     yield cur_str 

es verwendet, wird es eine Rückkehr Generator, der in einer Liste oder durchgeschleift gedreht werden kann:

sample_input="this+is-a;{example--;{string}" 
list(split_on_nonalpha(sample_input)) 

[ 'ist' 'dieser', 'a', 'Beispiel', 'string']

Verwandte Themen