我正在读this帖子,内容是排除具有给定字符串的情况。
那里选择的答案使用^((?!hede).)*$
排除字符串'hede'。
我有如下字符串:
apples_IOS_QA
apples_Android_QA
oranges
bananas
banannas_QA
apples_Android
apples_IOS
QA_apples_IOS // note sometimes 'QA' is at the beginning of the string
我想返回非质量检查版本的苹果。
尝试过(在Presto SQl查询中):
and regexp_like(game_name, '^((?!QA).*$^apples.*)')
没有结果返回
然后尝试:
and regexp_like(game_name, '^apples.*(!?QA)')
这会运行并返回苹果,但只有在实际上我想排除这些结果时,才能给我QA结果。
然后尝试:
and regexp_like(game_name, '^apples.*[^(QA)]')
这仅返回apples结果,但其中包含字符串“ QA”的结果。
我该如何正则表达式过滤器包括“ apples”,但排除所有包含子字符串“ QA”的情况?
答案 0 :(得分:2)
您可以使用基于前瞻的正则表达式:
^(?!.*QA).*apples.*$
(?!.*QA)
是该条件的先行断言,因为该条件在^
之前有.*
,因此该条件应用于整个字符串。