我希望查找所有字符串,但放弃不需要的字符。我有以下几行:
test! t!est !t!e!st! aaa!
我想找到所有的test(但删除所有不需要的字符)。从上表中我想得到
test
test! t!est !t!e!st!
Table.objects.filter(name=test_or_test_with some_unwanted_symbols).我不知道如何在这里应用Django F和Func。
Table.objects.filter(name=test_or_test_with some_unwanted_symbols)
F
Func
kmpatx3s1#
你可以使用Django Replace函数(在Django 2.1中引入)[docs].对于您的示例,您可能希望在注解中使用它:
Replace
>>> from django.db.models import Value >>> from django.db.models.functions import Replace >>> >>> Thing.objects.create(name='test!') >>> Thing.objects.create(name='t!est') >>> Thing.objects.create(name='!t!e!st!') >>> Thing.objects.create(name='aaa!') >>> >>> things = thing.objects.annotate( >>> clean_name=Replace('name', Value('!'), Value('')) >>> ) >>> things.filter(clean_name='test').values("name") <QuerySet [{'name': 'test!'}, {'name': 't!est'}, {'name': '!t!e!st!'}]>
quhf5bfb2#
我建议在这里使用regex
import re a=['test!','t!est','!t!e!st!','aaa!'] for i in a: k=re.sub(r"\W", "", i) if 'test' in k: print (k)
2条答案
按热度按时间kmpatx3s1#
你可以使用Django
Replace
函数(在Django 2.1中引入)[docs].对于您的示例,您可能希望在注解中使用它:
quhf5bfb2#
我建议在这里使用regex