gpt4 book ai didi

python - 如何创建一个负面的后视表达式 - 添加 - 不能是一个空词

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:59 25 4
gpt4 key购买 nike

我想在 C++ 中找到匹配命名空间/类上下文的元素,这些元素不是 std 或全局范围

我正在使用这个:

>>> re.findall("(?<!std)::(\w+)","my_namespace::my_function std::vector ::open i=0;::open")
['my_function', 'open', 'open']

所以 vector 像我预期的那样被过滤掉了,但是全局范围的 open 也被提取了(我需要在 :: 之前有一个非空词> 这不是 std; 不合格)

我知道我可以像这样提取命名空间和名称并进行后期处理:

>>> [b for a,b in re.findall("(\w+)::(\w+)","my_namespace::my_function std::vector ::open i=0;::open") if a != 'std']
['my_function']

但是是否有一种纯正则表达式的方式来做到这一点?

最佳答案

您可以添加另一个回顾断言:

>>> re.findall(r"(?<!std)(?<=\w)::(\w+)", "my_namespace::my_function std::vector ::open")
['my_function']
  • (?<=\w)检查是否 ::前面有一个单词字符

关于python - 如何创建一个负面的后视表达式 - 添加 - 不能是一个空词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52876444/

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