我正在努力将以下字符串分成两部分.主要是因为可能的分隔符之一是空格字符,它可以出现在第二个捕获组中.
https://regex101.com/r/dS0bD8/1
我怎样才能在任拆分这些字符串\s
,\skeyword\s
或\skey\s
?
'[] []' // => ['[]', '[]']
'[] keyword []' // => ['[]', '[]']
'[] key []' // => ['[]', '[]']
'[] ["can contain spaces"]' // => ['[]', '["can contain spaces"]']
'[] keyword ["can contain spaces"]' // => ['[]', '["can contain spaces"]']
'[] key ["can contain spaces"]' // => ['[]', '["can contain spaces"]']
'{} {}' // => ['{}', '{}']
'{} keyword {}' // => ['{}', '{}']
'{} key {}' // => ['{}', '{}']
'{} {"can":"contain spaces"}' // => ['{}', '{"can":"contain spaces"}']
'{} keyword {"can":"contain spaces"}' // => ['{}', '{"can":"contain spaces"}']
'{} key {"can":"contain spaces"}' // => ['{}', '{"can":"contain spaces"}']
'string string' // => ["string", "string"]
'string keyword string' // => ["string", "string"]
'string key string' // => ["string", "string"]
Run Code Online (Sandbox Code Playgroud)
(\skeyword\s|\skey\s|\s(?=.*[\[{]|[^\]}]+$))
Run Code Online (Sandbox Code Playgroud)
将适用于您提供的所有案例.
在这里演示.