![¿Cómo hacer coincidir una cadena hasta dos saltos de línea?](https://rvso.com/image/1585766/%C2%BFC%C3%B3mo%20hacer%20coincidir%20una%20cadena%20hasta%20dos%20saltos%20de%20l%C3%ADnea%3F.png)
Sé que esto ya tiene muchas preguntas y respuestas similares aquí, pero no puedo unirlas a partir de eso.
Lo que quiero es hacer coincidir llamadas a funciones particulares con una expresión regular, por ejemplo:
Lib.myfunction( arg0, arg1,
arg2, arg3 )
Estoy buscando Lib.myFunction
específicamente, no tiene por qué ser completamente genérico. Cada llamada a esta función tiene una línea vacía adicional justo después.
Un pequeño extra sería si pudiera terminar con un salto de línea, luego un espacio en blanco opcional y luego un salto de línea, porque los editores tienden a agregar espacios en blanco para alinear con el texto en la línea anterior.
¿Tendrías ideas de cómo debería verse la expresión regular?
Respuesta1
Lib\.myfunction\s*\(\s*\S+(?:,\s*\S+)*\s*\)
Explicación:
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