2016-10-24 2 views
0

первый раз постер здесь. Я не умею программировать, но я над этим работаю. Я получил назначение для моего класса Python, и я была поставлен задачей следующего:Regular Expressions

  • Вы должен думать о трех словах вы будете искать в линии чтения с клавиатуры. Три слова - ваше имя, ваш любимый цвет и ваш любимый сезон.

  • Ваша программа предложит пользователю строку, затем вы будете использовать регулярные выражения для поиска строки для каждого слова. Вы хотите найти слова, даже если случай смешан или отличается от того, что вы обычно используете.

  • Если вы нашли свое имя, вы должны распечатать вывод: «Привет, меня зовут NAME». С заменой NAME на то, что было напечатано (включая случай).

  • Если вы нашли свой любимый цвет, вы должны распечатать вывод: «О, мне нравится цвет COLOR». С заменой COLOR точно было набрано (включая корпус).

  • Если вы найдете свой любимый сезон, вы должны распечатать вывод: «Я думаю, что СЕЗОН - лучший сезон». С заменой SEASON точно было напечатано (включая случай).

Это то, что я пытался до сих пор:

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 

Я считаю, что имею право идея здесь ... Я знаю, что это не так, я просто расстроен, потому что я до сих пор изучая Python, и с этим приходит изучение того, как говорить об этом. Я не знаю, как точно сказать, ПОЧЕМУ я ошибаюсь или как мне нужно это исправить. Я не ищу, чтобы кто-то просто отвечал за меня, я хочу это понять. Все это помогает. Благодарю.

+0

Вы, кажется, пытаетесь найти «My name is DoTNeT» во втором «куске» ввода после запятой (вы разделяете запятой, а затем пытаетесь найти «My name is DoTNet» во втором из этих ломти). Разве вы не пытаетесь искать «DoTNet» (без учета регистра) на входе, предоставленном пользователем? Смысл, весь ваш ввод - это текст (скорее, 'str'), и вам нужно найти« DoTNet »в нем? – BorrajaX

+1

независимо от того, что сказал BorrajaX. плюс, если у вас есть правильные ключевые слова, попробуйте с re.match с re.IGNORECAS и re.sub – rnbcoder

ответ

0

Как вы упомянули, вам просто нужны предложения, а не фактический код (мне это понравилось). Вот несколько вещей, которые могут оказаться полезными:

  • Используйте string.split(), чтобы разделить вашу строку на слова (Tutorial link)

  • re.search(), чтобы проверить подстроки и re.sub() для замены строки. Например: your_word проверит your_word в строке как:

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

Пожалуйста, прочитайте: Regular Expression Syntax документ. Специально re.IGNORECASE для поиска без учета регистра.

+1

он не имел в виду, если 'hEllo' вводится' yes hello world' будет напечатано как 'yes hEllo world'. – rnbcoder

+0

Как он упоминал, ему не нужен настоящий код. Он хочет решить свою проблему самостоятельно.Я просто показываю ему путь :) –

+0

: D Я вижу. Кстати, вам не нужно '. *' для re.search. Это необходимо для re.match. – rnbcoder

Смежные вопросы