gpt4 book ai didi

regex - Python 正则表达式向后和向前

转载 作者:行者123 更新时间:2023-12-04 17:43:34 24 4
gpt4 key购买 nike

我需要从具有这种格式的字符串中匹配字符串“foo”:

string = "/foo/boo/poo"

我绑定(bind)了这段代码:
poo = "poo"
foo = re.match('.*(?=/' + re.escape(poo) + ')', string).group(0)

它给了我 /foo/boo作为变量 foo 的内容(而不仅仅是 foo/boo )。

我试过这段代码:
poo = "poo"
foo = re.match('(?=/).*(?=/' + re.escape(poo) + ')', string).group(0)

我得到相同的输出( /foo/boo 而不是 foo/boo )。

我怎样才能只匹配 foo/boo部分?

最佳答案

嘿尝试以下正则表达式:

(?<=/).*(?=/poo)
^^^^^^

它不会考虑结果中的第一个斜线。

已测试 正则表达式101 : https://regex101.com/r/yzMkTg/1

以下列方式转换您的代码,它应该可以工作:
poo = "poo"
foo = re.match('(?<=/).*(?=/' + re.escape(poo) + ')', string).group(0)

快速查看此链接以获取有关 Positive lookahead 行为的更多信息和 Positive lookbehind
http://www.rexegg.com/regex-quickstart.html

关于regex - Python 正则表达式向后和向前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886809/

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