gpt4 book ai didi

python - 检索 #{ } 中的文本

转载 作者:太空狗 更新时间:2023-10-30 00:37:13 29 4
gpt4 key购买 nike

我有以下文字:

#{king} for a ##{day}, ##{fool} for a #{lifetime}

以及以下(损坏的)正则表达式:

[^#]#{[a-z]+}

我想匹配所有#{words} 但不匹配##{words}(加倍'#'就像转义)。

今天我注意到我的正则表达式忽略了第一个词(拒绝匹配#{king},但正确地忽略了##{day} 和##{fool})。

>>> regex = re.compile("[^#]#{[a-z]+}")
>>> regex.findall(string)
[u' #{lifetime}']

关于如何改进当前正则表达式以满足我的需求的任何建议?我想问题出在 [^#] ...

最佳答案

你必须使用“负向回顾断言”,正确的正则表达式应该是这样的:

import re
t = "#{king} for a ##{day}, ##{fool} for a #{lifetime}"
re.findall(r'(?<!#)#{([a-z]+)}', t)

返回

['king', 'lifetime']

解释:

(?<!prefix)pattern表达式匹配 pattern仅当其前面没有 prefix 时.

关于python - 检索 #{ } 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7121157/

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