检查一个单词是否包含一个或多个星号

时间:2019-01-03 08:53:40

标签: python python-3.x string-matching string-search

我在Stack Overflow上提到了与此相关的一些帖子。 但是我并没有真正找到一种令人信服的方法。

根据一个单词(输入到函数中)是包含0个还是1个(或更多)星,我将如何拥有一个返回True或False的函数。

我尝试过这样的事情:

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

但是对于错误的情况也是如此。 不知道哪里出了问题。老实说正则表达式有点弱

3 个答案:

答案 0 :(得分:6)

最Python化的方式是

return '*' in word

答案 1 :(得分:0)

您要查找的正则表达式可能就是这个r".*[*].*"

正如Matan已经提到的那样,人们通常使用in关键字来验证一个字符串是否是另一个字符串的子字符串。

答案 2 :(得分:0)

如果您要检查字符串中的一个字符并计算该字符的出现满足条件,则这里是代码

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.')