![2 つの改行まで文字列を一致させるにはどうすればよいでしょうか?](https://rvso.com/image/1585766/2%20%E3%81%A4%E3%81%AE%E6%94%B9%E8%A1%8C%E3%81%BE%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E4%B8%80%E8%87%B4%E3%81%95%E3%81%9B%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
すでにここには類似の Q&A がたくさんあることは知っていますが、そこからまとめることができません。
私が望んでいるのは、特定の関数呼び出しを正規表現と一致させることです。例:
Lib.myfunction( arg0, arg1,
arg2, arg3 )
私が探しているのはLib.myFunction
具体的に、完全に汎用的である必要はありません。そのような関数呼び出しには、直後に追加の空行があります。
エディターは前の行のテキストと揃えるために空白を追加する傾向があるため、改行、オプションの空白、改行の順に終了できれば、余分なものはほとんどありません。
正規表現がどのようなものであるべきかについてのアイデアはありますか?
答え1
Lib\.myfunction\s*\(\s*\S+(?:,\s*\S+)*\s*\)
説明:
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