newlist = ['test', '%ing', 'osh', '16fg']
tartext = 'Singing'
Я хочу проверить, что значение моего целевого текста не совпадает ни с каким значением в новом списке. если строка нового списка содержит символ % в значении, то мне нужно сопоставить его с подстановочным знаком.
Я хочу добиться условия, как показано ниже.
if (tartext != 'test' and tartext not like '%ing' and tartext != 'osh' and tartext !=
'16fg') then return true else false
Поскольку %ing из lsit содержит символ «%», мне нужно изменить сравнение на поиск по подстановочным знакам, например sql.
В этом примере «Singing» соответствует «%ing», тогда я ожидаю, что условие вернет False.
Ниже приведен код, который я пробовал, но не сработал< /p>
import re
newlist = ['test', '%ing', 'osh', '16fg']
tartext = 'Singing'
def wildcard_compare(string, match):
match = match.replace('%','.*')#.replace('_','.')
match_expression = f'^{match}$'
return bool(re.fullmatch(match_expression,string))
def condition_match(lookupstring, mylist):
for value in mylist:
if '%' in value:
if not wildcard_compare(lookupstring,value):
return True
else:
if value != lookupstring:
return True
return False
print(condition_match(tartext,newlist))
print(condition_match('BO_IN',['AP_IN','BO_IN','CA_PS']))
Подробнее здесь: https://stackoverflow.com/questions/791 ... -when-symb
Проверьте, не содержит ли строка строк из списка с подстановочным знаком, если в значении списка указан символ %. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ответ Laravel 11 Access-Control-Allow-Origin по-прежнему является подстановочным знаком (*)
Anonymous » » в форуме Php - 0 Ответы
- 97 Просмотры
-
Последнее сообщение Anonymous
-