Python как получить слово в строке через указанный символ?

#python #python-3.x

#python #python-3.x

Вопрос:

 a = "I only want the $1000"
print(get_word_containing("$")
output: $1000
  

Как мне получить целое слово в строке с помощью символа в этом слове, чтобы оно работало, как показано выше?

Комментарии:

1. Вам нужны слова с '$' первым символом или '$' они могут быть где угодно в слове?

2. В случае того, для чего я его использую, это первое, но я бы предпочел, чтобы слово можно было найти с помощью ‘$’ в любом месте слова.

Ответ №1:

Ваша функция может быть такой простой, как:

 def get_word_containing(string, char):
    words = [word for word in string.split() if char in word]
    return words

string = "I only want the $1000"
print(get_word_containing(string, "$"))
  

Вывод:

 ['$1000']
  

Ответ №2:

Я немного изменю функцию @Biplob, чтобы вместо этого печатать строки:

 def get_word_containing(myStr, char):
    for x in myStr.split():
      if char in x:
        print(x)

mystring = "I only want the $1000"
get_word_containing(mystring, "$")
  

Ответ №3:

 import re

a = "I only want the $1000"

list = re.findall("[$]w ", text)

print(list)
  

Приведенный выше код предоставит вам массив всех слов, начинающихся с $ в вашей строке

Комментарии:

1. Не совсем. Ваш ответ даст любую подстроку , за которой $ следует один или несколько символов word. И ваш ответ на самом деле не является функцией, поскольку он жестко кодирует шаблон регулярных выражений.

2. спасибо Тиму за исправление моей ошибки, изменил код так, чтобы символ не был жестко прописан, также проверил его, выполнив его вручную, и он дал мне массив слов, начинающийся с $

Ответ №4:

 import re

def get_word_containing(myStr, char):
    list = re.findall("[" char "]w ", myStr)
    return list;

mystring = "I only $200 want the $1000"
ouput = get_word_containing(mystring, "$")
print(ouput);
  

Таким образом, это даст нам [‘$200’, ‘$1000’]