簡體   English   中英

在python中使用正則表達式匹配模式

[英]matching pattern with regular expression in python

我寫了一個匹配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*")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM