我有一个字符串:

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


我想将其转换为数组

arr = ['"Apples"', 'AND', '"Bananas"', 'OR', '"Gala Melon"']


我不知道我是否可以使用正则表达式执行此操作。我开始认为我可能必须一次解析每个字符以匹配双引号。

最佳答案

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

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


正则表达式的说明:

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

08-06 11:15