将引号中的短语视为javascript中的单词

时间:2012-05-02 11:31:34

标签: javascript regex

我正试图找到一种方法将字符串溢出成单个单词或短语,其中短语用引号括起来。例如:

javascript的sql server'vbscript

将分为:

  • 的javascript
  • sql server
  • 的VBScript

昨天我通过this question获得了帮助,使用

将字符串拆分为单个单词
/[-\w]+/g

我一直在与正则表达式的黑暗艺术搏斗,并发现this question在PHP中做了类似的事情,但即使有解释它仍然没有给我很多意义(并且没有我复制/粘贴到javascript时工作!)

/"(?:\\\\.|[^\\\\"])*"|\S+/

任何帮助甚至指向易于理解的正则表达式指南!

3 个答案:

答案 0 :(得分:1)

您应该尝试以下方法:

/([-\w]+)|'([^']*)'/g

但是,如果您在引用的字符串中包含任何形式的单引号,则会失败,这意味着您无法使用此构造转义引号。

答案 1 :(得分:1)

试试这个:

var pattern = /('[^']+'|[-\w]+)/g;
var text = "javascript 'sql server' vbscript";
console.log(text.match(pattern));

答案 2 :(得分:0)

也许你可以试试这个     var text = ... var split = function(tx) {return tx.split("\'", } 这应该按引号分开。然后只需使用长度来计算出来,因为所有偶数编号的索引都是引号。然后加入奇数索引并执行split(" ")来获取单词