gpt4 book ai didi

python - python中的正则表达式匹配模式

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

我编写了一个模式来匹配 typedef 后跟任意数量的字符,直到它匹配第一个左大括号,后跟一个 * ,然后是一个单词,右大括号等等。模式是

pattern_funp = re.compile(r"typedef(.*?)\(\*(\w+)\s*\)\s*\(.*?\)\s*")

上面的模式与下面一行中的 acpi_adr_space_setup 匹配,这是正确的:

typedef acpi_status(*acpi_adr_space_setup) (acpi_handle region_handle,u32 function,void *handler_context,  void **region_context);

但在下面的行中它匹配 func 这不是我想要的:

typedef void *call_rcu_func_t (struct rcu_head *head,void (*func1)(struct rcu_head *head));

该模式应匹配第一个(后跟 *,而不是第二个(带有 *。

最佳答案

不确定您的意思,但如果您不想匹配第一个括号后的任何内容,请将 [^(] 而不是 . 应该可以解决问题:

pattern_funp = re.compile(r"typedef([^(]*?)\(\*(\w+)\s*\)\s*\(.*?\)\s*")

关于python - python中的正则表达式匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332225/

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