gpt4 book ai didi

python - 函数定义上的正则表达式 findall。想要匹配参数但不匹配函数

转载 作者:行者123 更新时间:2023-11-30 23:44:09 24 4
gpt4 key购买 nike

我有一个看起来像这样的字符串列表

"funcname(arg, another_arg)*20 + second_func(arg1, arg2)"

我只想取出参数。我尝试过以下方法:

re.findall(r'\w[\w\d_]+(?!\()', string)

但是这会返回

['funcnam', 'arg', 'another_arg', '20', 'second_fun', 'arg1', 'arg2']

首先,我对为什么看到 '20' 感到有点困惑,因为我指定字符串应以单词字符开头。其次,我想知道如何改进我的前瞻性以匹配我正在寻找的东西。

我应该注意到,有些字符串没有函数,看起来像

"value1 + value_two"

所以我不能简单地在括号内搜索。

最佳答案

>>> pattern = '[a-zA-Z_]\w*(?![\(\w])'
>>> re.findall(pattern, "funcname(arg, another_arg)*20 + second_func(arg1, arg2)")
['arg', 'another_arg', 'arg1', 'arg2']
>>> re.findall(pattern, "value1 + value_two")
['value1', 'value_two']

关于python - 函数定义上的正则表达式 findall。想要匹配参数但不匹配函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249422/

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