gpt4 book ai didi

python - 使用负向预测的多个正则表达式匹配

转载 作者:行者123 更新时间:2023-12-01 04:06:01 27 4
gpt4 key购买 nike

我正在尝试匹配给定字符串中的“查询”一词“此查询管理的查询解决方案不应突出显示。只有此查询应突出显示。”

使用以下正则表达式:

(query(?!\smanagement)|query(?!\sresolution))

但是我无法让正则表达式仅匹配字符串中的最后一个单词“query”。

问候,

阿洛克

最佳答案

(query(?!\smanagement)|query(?!\sresolution)) 正则表达式无法仅匹配一个 query 并匹配所有 3 个 查询,因为您有两种选择:查询,后面不应跟有空格和管理,以及与查询匹配的另一种选择后面没有空格和分辨率。您需要使用一种前瞻来禁止解析管理

你可以使用

query(?!\s(?:management|resolution))

参见demo

前瞻 (?!\s(?:management|resolution)) 将会导致后面跟有 1 个空格的 query 匹配失败,后跟任一 管理解决

要仅匹配整个单词,请使用 \b:

\bquery\b(?!\s\b(?:management|resolution)\b)

Python demo展示如何使用此正则表达式通过 re.search 获取字符串中的第一个匹配项:

import re
p = re.compile(r'query(?!\s*(?:management|resolution))')
test_str = "The query resolution with this query management should not get highlighted. Only this query should get highlighted.The query resolution with this query management should not get highlighted. Only this query should get highlighted."
m = p.search(test_str)
if m:
print(m.group())

关于python - 使用负向预测的多个正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560987/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com