Способ проверить, включает ли строка одновременно строку и di git - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь найти слово, которое включает строки и числа одновременно. Я пытался сделать что-то вроде:

string = "bear666 got sentenced 70 years in prison"

values = string.split()

for i in values:
    if i.isalpha() and i.isdigit():
        print(i)

, но ничего не получалось. Помощь будет высоко ценится

Я пытаюсь получить beaar666 в качестве вывода.

Ответы [ 4 ]

4 голосов
/ 15 января 2020

Попробуйте:

import re
string = "bear666 got sentenced 70 years in prison 666dog"
re.findall(r'(?:\d+[a-zA-Z]+|[a-zA-Z]+\d+)', string)

Вывод:

['bear666', '666dog']
2 голосов
/ 15 января 2020

isalpha() и isdigit() проверьте, что все слово состоит только из цифр (или только из букв соответственно).

вы проверяете оба, перебирая все буквы слова, например:

string = "bear666 got sentenced 70 years in prison"

values = string.split()

for i in values:
    if any(char.isalpha() for char in i) and any(char.isdigit() for char in i):
        print(i)
2 голосов
/ 15 января 2020

Попробуйте это:

string = "bear666 got sentenced 70 years in prison"
words = string.split(" ")

def hasNumbersAndAlphabets(inputString):
    return any(char.isdigit() for char in inputString) and any(c.isalpha() for c in inputString)

for word in words :
    if hasNumbersAndAlphabets(word) :
        print(word)
0 голосов
/ 15 января 2020

Просто используйте re.search() дважды. Первый шаблон ищет буквы; второй ищет цифры. if оба шаблона совпадают, строка содержит как буквы, так и цифры.

...