Ich habe ein paar Dateien mit Python-Code und Dekorateure wie folgt aus:Grep und ersetzen Fuzzy-Muster der Zeichenfolge
@trace('api.module.function_name', info=None, custom_args=False)
Der einzige Unterschied zwischen diesen Dekorateure ist der String ‚api.module.function_name‘ - Funktionsname und Modul sind anders. Und abhängig von diesem Namen ist dieser Dekorateur manchmal einreihig, manchmal zwei- oder dreireihig.
Ich möchte diese Dekoratoren durch die andere ersetzen - einfacher, wie "@my_new_decorator".
Ich dachte über einige Regex, aber ich habe keine Ahnung, ob es für solche "unscharfe" Suche möglich ist. Ich habe versucht ^@trace([A-Za-z0-9]\, custom_args=False)$
Aber es funktioniert nicht.
Gibt es eine Möglichkeit, es zu tun?
Nun ein regex sehen So etwas würde nicht funktionieren, du brauchst etwas mehr wie '^ \ s * @ trace \ (. + \) $', weil du ein alphanumerisches Zeichen und nur dann eine Übereinstimmung findest, wenn das alles in Spalte 0 ist. – moopet
Sie könnten benötige das mehrzeilige Flag in deiner Regex: 're.M' – pwnsauce