開發過程中,常常需要判斷字符串是否存在指定的關鍵詞或排除詞,如果設置了多個關鍵詞,往往通過串聯and條件或借助for循環做判斷,有沒有更優雅的方法呢?
判斷一個字符串含有某個字符串中
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
判斷一個字符串含有多個字符串中的任意一個
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
判斷一個字符串含有多個字符串
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
計算一個字符串含有指定字符串的數量
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