如何在Javascript中对字符串进行标记?

spi*_*ers 1 javascript arrays string

我有一个字符串:

'"Apples" AND "Bananas" OR "Gala Melon"'
Run Code Online (Sandbox Code Playgroud)

我想将其转换为数组

arr = ['"Apples"', 'AND', '"Bananas"', 'OR', '"Gala Melon"']
Run Code Online (Sandbox Code Playgroud)

我不知道我是否可以用正则表达式来做.我开始认为我可能必须一次解析每个字符以匹配双引号.

Joh*_*rak 5

input = '"Apples" AND "Bananas" OR "Gala Melon"'

output = input.match(/\w+|"[^"]+"/g)
// output = ['"Apples"', 'AND', '"Bananas"', 'OR', '"Gala Melon"']
Run Code Online (Sandbox Code Playgroud)

正则表达式的解释:

/- 正则表达式的开始
\w+- 单词字符序列
| - 或
"[^"]+"- 引用的任何内容(假设没有转义引号)
/g- 正则表达式结束,全局标志(执行多个匹配)