![如何匹配字串直到兩個換行符?](https://rvso.com/image/1585766/%E5%A6%82%E4%BD%95%E5%8C%B9%E9%85%8D%E5%AD%97%E4%B8%B2%E7%9B%B4%E5%88%B0%E5%85%A9%E5%80%8B%E6%8F%9B%E8%A1%8C%E7%AC%A6%EF%BC%9F.png)
我知道這裡已經有很多類似的問答,但我無法將它們放在一起。
我想要的是將特定函數呼叫與正規表示式相匹配,例如:
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