gpt4 book ai didi

python - 快速正则表达式 Python 3 不起作用

转载 作者:行者123 更新时间:2023-12-01 05:37:26 25 4
gpt4 key购买 nike

if re.findall(r"i am .*", a):
reg = re.compile(r" i am ([\w]+).*?$")
print('How long have you been {}?'.format(*reg.findall(a)))

所以如果我输入:

i am struggling with life...

它应该输出:

How long have you been struggling?

但由于某种原因我收到元组错误?

顺便说一下,a 只是一个输入字段。

Traceback (most recent call last):
File "program.py", line 14, in <module>
print('How long have you been {}?'.format(*reg.findall(a)))
IndexError: tuple index out of range

最佳答案

您的第二个正则表达式不匹配:

re.compile(r" i am ([\w]+).*?$")

因为它以空格开头。删除初始空格,它就可以正常工作:

>>> a = 'i am struggling with life...'
>>> reg = re.compile(r" i am ([\w]+).*?$")
>>> reg.findall(a)
[]
>>> reg = re.compile(r"i am ([\w]+).*?$")
>>> reg.findall(a)
['struggling']

您看到的异常被抛出,因为 .format() 方法接收位置参数作为元组,尝试查找项目 0 并且因为它传递了一个您将得到 IndexError 的参数集。

关于python - 快速正则表达式 Python 3 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588858/

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