gpt4 book ai didi

python - 使用 Python 正则表达式 查找特定数字的正则表达式

转载 作者:行者123 更新时间:2023-12-01 05:16:20 24 4
gpt4 key购买 nike

我需要一个正则表达式来查找 Apache 配置中 RequestReadTimeout 指令中的 maxtimeout 值(以下为 40)。文件,例如:

RequestReadTimeout header=XXX-40,MinRate=XXX body=XXX
RequestReadTimeout header=40 body=XXX

PS:XXX指的是十进制数字

我用过这个:

str="RequestReadTimeout header=10-40,MinRate=10 body=10"
re.search(r'header=\d+[-\d+]*', str).group()
'header=10-40'

但我需要一个正则表达式来仅获取一行中的 maxtimeout 值(本例中为 40)(不使用其他函数,如 spit("-")[1] ...等)。

谢谢。

最佳答案

您可以将要提取的部分分组:

re.search(r'header=(?:\d*-)?(\d+)', inputstr).group(1)

(...) 标记一个组,类似的位置组从 1 开始编号。

我稍微改变了你的表达方式,只捕获包含数字和破折号的可选非捕获组之后的数字,以匹配你正在寻找的两种模式。 (?:...) 是一个非捕获组;它不会将匹配的文本存储在组中,但允许您在组上使用 ? 量词将其标记为可选。

Pythex demo .

Python session :

>>> import re
>>> for inputstr in ('RequestReadTimeout header=1234-40,MinRate=XXX body=XXX', 'RequestReadTimeout header=40 body=XXX'):
... print re.search(r'header=(?:\d*-)?(\d+)', inputstr).group(1)
...
40
40

关于python - 使用 Python 正则表达式 查找特定数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23151836/

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