我试图在 perl 中的元素之间的空格上分割一个字符串。但是,每个元素也可能包含空格(通过双引号或括号括起来)。
例如,一个字符串包含:
for element in hydrogen helium "carbon 14" $(some stuff "here") FILE
Run Code Online (Sandbox Code Playgroud)
我想最终得到一个像 (hydrogen, helium, "carbon 14", "$(some stuff "here")", FILE)
我可以处理这个for element in位并将其余的作为一个字符串。我试过做
@elements = split /(?<=\"[^\"]*\")\s+(?=\"[^\"]*\")/, $list
Run Code Online (Sandbox Code Playgroud)
虽然正则表达式只匹配引号之间的空格(在 regexr.com 上检查),但 perl 程序给了我Lookbehind longer than 255 not implemented in regex.
是否有更好的使用split空白的方法可以考虑到这一点?我的正则表达式做错了什么?