我正试图找到一种方法将字符串溢出成单个单词或短语,其中短语用引号括起来。例如:
javascript的sql server'vbscript
将分为:
昨天我通过this question获得了帮助,使用
将字符串拆分为单个单词/[-\w]+/g
我一直在与正则表达式的黑暗艺术搏斗,并发现this question在PHP中做了类似的事情,但即使有解释它仍然没有给我很多意义(并且没有我复制/粘贴到javascript时工作!)
/"(?:\\\\.|[^\\\\"])*"|\S+/
任何帮助甚至指向易于理解的正则表达式指南!
答案 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(" ")
来获取单词