Проверьте, содержит ли слово одну или несколько звездочек - PullRequest
0 голосов
/ 03 января 2019

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

Как бы у меня была функция для возврата True или False в зависимости от того, содержит ли слово (которое вводится в функцию) 0 или 1 (илидалее) звезды.

Я пробовал что-то вроде этого:

def ANY_CHAR_IS_star(word):
    return bool(re.match(r"^[*]?", word))

Однако это также верно для ложных случаев.Не уверен, где я иду не так.Честно говоря, немного слаб в регулярных выражениях

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Регулярное выражение, которое вы ищете, вероятно, это r".*[*].*"

Как уже упоминал Матан, люди обычно используют ключевое слово in, чтобы проверить, является ли строка подстрокой другой.

0 голосов
/ 03 января 2019

если вы хотите проверить символ в строке и посчитать, что этот символ удовлетворяет условию, то вот код,

from collections import defaultdict

def defv():
    return 0

def func(string):
    dic = defaultdict(defv)
    for i in string :
        dic[i]+=1
    return dic

word = 'abcdef**abs**'
data = func(word)

# check *  is in word and haveing count say x then
check='*' # checking caracter
count=2
try :
    if data[check]>count:
        print('True',data[check]) # printing the number of occurence of that charater
    else:
        print('False')
except KeyError:
    print('character is not in the string.')
0 голосов
/ 03 января 2019

Самый питонский способ сделать это будет

return '*' in word
...