Perl分裂和正则表达式

sno*_*kin 5 regex perl split

我有以下字符串:

'100% California Grown Olives, Water, Salt And Ferrous Gluconate (An,Iron, Derivative),asasd, sadasda'
Run Code Online (Sandbox Code Playgroud)

我试图拆分它,/,/只有当 它不在括号内时,例如,在这种情况下,结果应该是:

100% California Grown Olives
Water
Salt And Ferrous Gluconate (An,Iron, Derivative)
asasd
sadasda
Run Code Online (Sandbox Code Playgroud)

谢谢,

Tim*_*ker 11

@result = split(m/,(?![^()]*\))/, $subject);
Run Code Online (Sandbox Code Playgroud)

仅当下一个括号(如果有)不是右括号时,才会在逗号上拆分.正如Jack Maney所说,如果可能出现嵌套括号,这可能会导致失败.

说明:

,       # Match a comma.
(?!     # Assert that it's impossible to match...
 [^()]* # any number of non-parenthesis characters
 \)     # followed by a closing parenthesis
)       # End of lookahead assertion
Run Code Online (Sandbox Code Playgroud)