正则表达式在每个{space}上分割一个字符串,但不包含在引号中

web*_*oob 4 php regex preg-match

我对正则表达式不是很好(实际上根本不了解).我需要从空格分割的字符串创建一个数组但仅当空格不在双引号内时才这样:

this.line "should be 3" elements
Run Code Online (Sandbox Code Playgroud)

看起来像是:

this.line
should be 3
elements
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用preg_match来获取数组,但我对正则表达式一无所知.

ps我已经在Stack Overflow中查看了其他解决方案,但正则表达式似乎不适用于我的preg_match.

谢谢.

Mar*_*ers 6

你可以试试这个:

preg_match_all('/"[^"]+"|\S+/', $s, $matches);
Run Code Online (Sandbox Code Playgroud)

看到它在线工作:ideone