![Wie kann eine Zeichenfolge bis zu zwei Zeilenumbrüchen abgeglichen werden?](https://rvso.com/image/1585766/Wie%20kann%20eine%20Zeichenfolge%20bis%20zu%20zwei%20Zeilenumbr%C3%BCchen%20abgeglichen%20werden%3F.png)
Ich weiß, dass es hier bereits viele ähnliche Fragen und Antworten gibt, aber ich bin einfach nicht in der Lage, das Ganze zusammenzufassen.
Ich möchte bestimmte Funktionsaufrufe mit einem regulären Ausdruck abgleichen, z. B.:
Lib.myfunction( arg0, arg1,
arg2, arg3 )
Ich suche Lib.myFunction
speziell, es muss nicht völlig generisch sein. Jeder derartige Funktionsaufruf hat direkt danach eine zusätzliche leere Zeile.
Ein kleiner Extrapunkt wäre, wenn es mit einem Zeilenumbruch, dann optionalem Leerzeichen und dann einem Zeilenumbruch beendet werden könnte, weil Editoren dazu neigen, Leerzeichen hinzuzufügen, um eine Ausrichtung mit dem Text in der vorhergehenden Zeile vorzunehmen.
Hätten Sie Ideen, wie der reguläre Ausdruck aussehen sollte?
Antwort1
Lib\.myfunction\s*\(\s*\S+(?:,\s*\S+)*\s*\)
Erläuterung:
Lib\.myfunction # literally
\s* # 0 or more spaces
\( # opening parenthesis
\s* # 0 or more spaces
\S+ # 1 or more NON spaces
(?: # start non capturing group
, # a comma
\s* # 0 or more spaces
\S+ # 1 or more NON spaces
)* # end group, may appear 0 or more times
\s* # 0 or more spaces
\) # closing parenthesis