regex - 包括 'Somestring' 但不包括那些包含 'Otherstring'
问题描述
我正在阅读这篇关于排除给定字符串的案例的帖子。
那里选择的答案^((?!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
我想退回非 QA 版本的苹果。
尝试过(在 Presto SQl 查询中):
and regexp_like(game_name, '^((?!QA).*$^apples.*)')
没有返回结果
然后尝试:
and regexp_like(game_name, '^apples.*(!?QA)')
这会运行并返回苹果,但只有在我实际上想排除这些结果时才给我 QA 结果。
然后尝试:
and regexp_like(game_name, '^apples.*[^(QA)]')
这仅返回苹果结果,但包括其中包含字符串“QA”的结果。
如何进行正则表达式过滤以包含“apples”但排除任何包含子字符串“QA”的案例?
解决方案
您可以使用这个基于前瞻的正则表达式:
^(?!.*QA).*apples.*$
(?!.*QA)
是需要放置^
在该条件旁边的前瞻断言应用于整个字符串,因为它具有.*
before QA
。
推荐阅读
- c# - 事件模式为了什么目的将事件触发方法声明为虚拟的?
- python - PyTorch:copy_if 同步失败:触发了设备端断言
- javascript - 函数不返回值
- php - PHP-文件上传在本地主机上工作,但不在服务器上(linux)
- python - 用 Pandas 删除一列的第一个逗号
- r - 一个反应函数以交互方式显示在两个不同的页面上
- amazon-web-services - 在 Cloudformation 中清除堆栈策略?
- selenium - IE浏览器在执行过程中缩小
- c# - Skype 机器人未使用 HeroCard 更新响应
- android-studio - 加载 AppCompat ActionBar 失败,出现未知错误。提示:尝试刷新布局