gpt4 book ai didi

python - 正则表达式以及如何获取捕获的值

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

custom = 'number=value1;user=value2;yr=value3'

number=re.findall('number=(.+?);',custom)
user=re.findall('user=(.+?);',custom)
yr=re.findall('yr=(.+?)[;\w]',custom))

outcome:

print number
value1

我正在尝试从 custom 中提取 numberuseryr 的值。除了'yr',它都在工作,因为'yr'是最后一个词,它不以';'结尾。我尝试添加\w,但没有用。有没有办法以';'结尾或字符串结束?我可以搜索 custom[-1],但我只想知道如何使用正则表达式,而 yr 并不总是最后; numberuser 有时可以放在最后。

最佳答案

您可以利用正则表达式回顾并使用如下正则表达式:

(?<==)(\w+)

Working demo

enter image description here

因此,您可以对每种情况使用此正则表达式:

(?<=number=)(\w+)
(?<=user=)(\w+)
(?<=yr=)(\w+)

你的代码可以是这样的:

custom = 'number=value1;user=value2;yr=value3'

number=re.findall('(?<=number=)(\w+)',custom)
user=re.findall('(?<=user=)(\w+)',custom)
yr=re.findall('(?<=yr=)(\w+)',custom))

outcome:

print number
value1

更新:如 CommuSoft 在他的评论中指出,如果您有空格,正则表达式将不会捕获内容。因此,您可以使用以下方法改进正则表达式:

(?<==)([^;]+)

因此,您可以为每个参数设置如下内容:

(?<=number=)([^;]+)
(?<=user=)([^;]+)
(?<=yr=)([^;]+)

Working demo

关于python - 正则表达式以及如何获取捕获的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29021865/

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