2016-10-24 3 views
0

zum ersten Mal hier Poster. Ich bin nicht großartig im Programmieren, aber ich arbeite daran. Ich habe einen Auftrag für meinen Python-Klasse gegeben, und ich habe mit folgendem beauftragt worden:Reguläre Ausdrücke

  • Sie benötigen werden die Suche zu denken, drei Worte, die Sie für in Zeilen zu lesen in der Tastatur. Die drei Wörter sind dein Vorname, deine Lieblingsfarbe und deine Lieblingsjahreszeit.

  • Ihr Programm fordert den Benutzer zur Eingabe einer Zeile auf, dann werden Sie mit regulären Ausdrücken die Zeile nach jedem Wort suchen. Sie möchten die Wörter auch dann finden, wenn die Groß-/Kleinschreibung gemischt ist oder sich von der normalerweise verwendeten unterscheidet.

  • Wenn Sie Ihren Vornamen finden, sollten Sie die Ausgabe ausdrucken, "Hey, mein Name ist NAME." Mit NAME ersetzt mit genau was eingegeben wurde (einschließlich Groß-/Kleinschreibung).

  • Wenn Sie Ihre Lieblingsfarbe finden, sollten Sie die Ausgabe ausdrucken, "Oh, ich mag die Farbe COLOR." Mit der COLOR ersetzt mit genau was getippt wurde (einschließlich Fall).

  • Wenn Sie Ihre Lieblingsjahreszeit finden, sollten Sie die Ausgabe ausdrucken, "Ich denke SEASON ist die beste Jahreszeit." Mit der SEASON ersetzt mit genau was getippt wurde (einschließlich Fall).

Das ist, was ich bisher versucht habe:

import re 

input = raw_input("Please input a sentence stating your name, your favorite color, and your favorite season: ") 

x = "My name is DoTNeT." 
name = input.split(",")[1] 
z = re.search(name, x) 

if z == None: 
    pass 
else: 
    print x 

glaube ich, hier die richtige Idee haben ... Ich weiß nicht richtig es ist, ich bin nur frustriert, weil ich immer noch bin Python zu lernen und damit zu lernen, wie man darüber spricht. Ich kann nicht genau sagen, WARUM ich falsch liege oder wie ich es beheben muss. Ich suche niemanden, der mir dies einfach beantwortet, ich will es verstehen. Alles hilft. Vielen Dank.

+0

Sie scheinen zu suchen nach "Mein Name ist DoTNeT" im zweiten "Chunk" der Eingabe nach einem Komma (Sie durch Komma teilen und dann versuchen, nach 'My name is DoTNet' in der zweiten von denen zu suchen Stücke). Sollten Sie nicht einfach in der Eingabe des Benutzers nach "DoTNet" suchen (Groß-/Kleinschreibung beachten)? Das heißt, Ihr ganzer Input ist ein Text (ein 'str', eher) und Sie müssen' DoTNet' darin finden? – BorrajaX

+1

was auch immer BorrajaX gesagt hat. plus, wenn du die richtigen keywords hast versuche mit re.match mit re.IGNORECAS und re – rnbcoder

Antwort

0

Wie Sie erwähnt haben, brauchen Sie nur Vorschläge nicht tatsächlichen Code (Ich mochte das). Hier sind einige Dinge, die Sie nützlich finden könnten:

  • Verwenden string.split() Zeichenfolge in Worte zu spalten (Tutorial link)

  • re.search() für Teilzeichenfolge zu überprüfen und re.sub() für die Zeichenfolge zu ersetzen. Zum Beispiel: your_word für your_word in Zeichenfolge überprüfen, wie:

    >>> import re 
    >>> if re.search('hello', 'yes hello world'): 
    ... print 'match' 
    ... 
    match # prints match as "hello" is present in "yes hello world" 
    

Bitte lesen: Regular Expression Syntax Dokument. Speziell re.IGNORECASE für die Suche nach Groß-/Kleinschreibung.

+1

meinte er nicht wenn 'hello' eingegeben würde ja hallo world würde als' yes hello world' gedruckt werden. – rnbcoder

+0

Wie er erwähnt hat, braucht er den eigentlichen Code nicht. Er möchte sein Problem selbst lösen.Ich zeige ihm nur den Pfad :) –

+0

: D Ich verstehe. Übrigens brauchen Sie '. *' nicht für re.search. Es wird für re.match benötigt. – rnbcoder