Ich habe ein Muster geschrieben, um typedef gefolgt von einer beliebigen Anzahl von Zeichen, bis es die ersten öffnenden geschweiften Klammern gefolgt von einem *, dann ein Wort, schließende geschweifte Klammern und so weiter. das Muster istpassendes Muster mit regulärem Ausdruck in Python
pattern_funp = re.compile(r"typedef(.*?)\(\*(\w+)\s*\)\s*\(.*?\)\s*")
Das obige Muster entspricht acpi_adr_space_setup in der Zeile unter dem korrekt ist:
typedef acpi_status(*acpi_adr_space_setup) (acpi_handle region_handle,u32 function,void *handler_context, void **region_context);
aber in der folgenden Zeile passt es func, die nicht das, was ich will:
typedef void *call_rcu_func_t (struct rcu_head *head,void (*func1)(struct rcu_head *head));
Das Muster sollte mit dem ersten übereinstimmen (gefolgt von * nicht dem zweiten (mit *.
Dann, was Sie im zweiten Beispiel übereinstimmen sollen? – Quinn
der Regex sollte nicht mit dem 2. Beispiel übereinstimmen. –