当前位置:  开发笔记 > 编程语言 > 正文

解析字符串:提取单词和短语[JavaScript]

如何解决《解析字符串:提取单词和短语[JavaScript]》经验,为你挑选了1个好方法。

我需要在一个空格分隔的术语列表中支持精确的短语(用引号括起来).因此,用空格字符分割相应的字符串是不够的.

例:

input : 'foo bar "lorem ipsum" baz'
output: ['foo', 'bar', 'lorem ipsum', 'baz']

我想知道这是否可以通过单个RegEx实现,而不是执行复杂的解析或拆分和重新加入操作.

任何帮助将不胜感激!



1> yoz..:
var str = 'foo bar "lorem ipsum" baz';  
var results = str.match(/("[^"]+"|[^"\s]+)/g);

...返回你正在寻找的数组.
但请注意:

包含了绑定引号,因此可以replace(/^"([^"]+)"$/,"$1")在结果中删除.

引号之间的空格将保持不变.所以,如果lorem和之间有三个空格ipsum,它们就会出现在结果中.您可以通过运行replace(/\s+/," ")结果来解决此问题.

如果"之后没有关闭ipsum(即错误引用的短语),您将最终得到:['foo', 'bar', 'lorem', 'ipsum', 'baz']

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有