python - 使用正则表达式检查字符串是否包含排除某些单词的单词组合

标签 python regex

<分区>

我正在尝试创建一个正则表达式过滤器来检测一个字符串是否包含没有特定单词的特定子字符串。

比如我想找出所有包含子串“account manager”的字符串,并排除所有的managers、senior managers和senior account managers

我尝试使用 re.findall(r"account|manager") 然后检查数组的长度是否为 2 并且数组不包含单词 senior 或 sr。

取而代之的是,我想创建一个表达式来(排除单词 senior 和 sr)和(包括单词 account 和 manager) 因此,对于以下示例,条件应返回 True/False 条件值:

sr manager - False
senior key account manager - False
sr. key account manager - False
account manager - True
key account manager - True
manager - False
account manager - True

我尝试创建如下内容,但这是不正确的: (?!senior|sr)(key|account|manager)

有谁知道检查这种情况的正确方法是什么?

最佳答案

依靠正则表达式来完成一项简单的任务通常不是一个好主意。这是一个简单易读的函数,可以通过您的所有测试用例。

from typing import List
def validate_str(s: str, target_substring: str, excluded_strs: List[str]) -> bool:
    if target_substring not in s:
        return False
    if any((i in s for i in excluded_strs)):
        return False
    return True

关于python - 使用正则表达式检查字符串是否包含排除某些单词的单词组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67610130/

相关文章:

objective-c - 如何创建值包含字符序列的谓词,例如 Xcode 过滤

java - 用于解析 queryString 的正则表达式

python - 从 WIndows 命令行运行脚本时,PyQt Qstring 不被接受,为什么?

python - "Zero Iteration"- 简单联系表功能中的端到端验收测试

regex - 正则表达式可能无法使用正则表达式在Google Analytics(分析)中运行?

C#:包含 2 个和/或 3 个单词的名称的正则表达式

python - 如何找出缺少哪个 Python 关键字参数?

python - 使用 numpy 高效地将 16 位图像数据转换为 8 位显示,具有强度缩放

python - 为什么 Python 编译这段代码没有抛出错误?

regex - Elixir 案例中的正则表达式