使用正则表达式抓取一个字符串

Dra*_*ake 0 regex groovy

我有以下字符串.为清晰起见,我将其分为两行,但它们是一行.

    WHEN NVL(somevar1, 0) > 0 THEN 
(CAST(NVL(somevar2, 0) AS
 FLOAT(53)) / CAST(NVL(somevar3, 0) AS FLOAT(53))) * 100
Run Code Online (Sandbox Code Playgroud)

我想写一个正则表达式,以便我可以得到somevar1,somevar2和somevar3.

我正在尝试这样的事情:

NVL(.*,)
Run Code Online (Sandbox Code Playgroud)

但这匹配最后一个逗号而不是第一个逗号.

顺便说一句,我在groovy这样做.

Joe*_*Joe 5

它有助于了解您正在使用的正则表达式引擎,因为并非所有人都支持非贪婪量词.

请尝试以下方法之一:

NVL\((.*?),
Run Code Online (Sandbox Code Playgroud)

要么

NVL\(([^,]*),
Run Code Online (Sandbox Code Playgroud)