Задать вопрос
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый

Поиск вне зависимости от позиции?

Добрый день! Мне нужно проверить с помощью re присутствуют ли в строке два слова 'как дела'. Но если в качестве шаблона просто указать 'как дела', то тогда 'как у тебя дела', 'дела как' уже не сработают. Как это реализовать?
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
dimonchik2013
@dimonchik2013
non progredi est regredi
пробуй
как.+дела
как.*дела
Ответ написан
seven5674
@seven5674
Старый я уже что бы что-то в себе менять
Если пря очень надо на регулярке
import re

ss = [
    "как дела",
    "дела как",
    "как у тебя дела",
    "как чё",
    "как вообще",
    "как проити",
    "дела хорошо"
]

for s in ss:
    if re.findall(r"(как)", s) and re.findall(r"(дела)", s):
        print("{} - Ok".format(s))
    else:
        print("{} - Err".format(s))

и...
как дела - Ok
дела как - Ok
как у тебя дела - Ok
как чё - Err
как вообще - Err
как проити - Err
дела хорошо - Err
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Samad_Samadovic
Попробуйте оператор in
A = input()
if 'дела' in A.lower() and 'как' in A.lower():
    print(A);
Ответ написан
Комментировать
@AVKor
Регулярки тут не нужны.
$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> words = 'как дела'
>>> phrase = 'у тебя дела как'
>>> [word for word in words.split(' ') if word in phrase.split(' ')] == words.split(' ')
True
>>> phrase = 'у тебя дела'
>>> [word for word in words.split(' ') if word in phrase.split(' ')] == words.split(' ')
False
>>>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы