开发过程中,常常需要判断字符串是否存在指定的关键词或排除词,如果设置了多个关键词,往往通过串联 and 条件或借助 for 循环做判断,有没有更优雅的方法呢?

判断一个字符串含有某个字符串中

【Python 基础】判断字符串包含多个字符串中的一个或多个 - math98 - 博客园 - 图1

p = “Tom is a boy,Lucy is a girl,they all like english!” w\= ‘Tom’

print(w in p) >>>True print(p.find(w) > -1) >>>True

【Python 基础】判断字符串包含多个字符串中的一个或多个 - math98 - 博客园 - 图2

判断一个字符串含有多个字符串中的任意一个

【Python 基础】判断字符串包含多个字符串中的一个或多个 - math98 - 博客园 - 图3

p = “Tom is a boy,Lucy is a girl,they all like english!” keywords\= ‘Tom,Lucy’ excludes \= [‘english’,’math’] print(any([w in p and w for w in keywords.split(‘,’)])) >>>True print(any(e in p for e in excludes)) >>>True

【Python 基础】判断字符串包含多个字符串中的一个或多个 - math98 - 博客园 - 图4

判断一个字符串含有多个字符串

【Python 基础】判断字符串包含多个字符串中的一个或多个 - math98 - 博客园 - 图5

p = “Tom is a boy,Lucy is a girl,they all like english!” keywords\= ‘Tom,Lucy’ filters\= [“boy”,”like”] print(all(f in p for f in filters)) >>>True print(all([w in p and w for w in keywords.split(‘,’)])) >>>True

【Python 基础】判断字符串包含多个字符串中的一个或多个 - math98 - 博客园 - 图6

计算一个字符串含有指定字符串的数量

p = “Tom is a boy,Lucy is a girl,Tom like math and Lucy like english!” keywords\= ‘english,math,history,laws’
print sum([1 if w in p and w else 0 for w in keywords.split(‘,’)]) >>>2
https://www.cnblogs.com/math98/p/14310562.html