0

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

javascript 'sql server' vbscript

将分为:

  • javascript
  • sql服务器
  • 脚本

我昨天得到了这个问题的帮助,它使用将字符串拆分为单个单词

/[-\w]+/g

我一直在与正则表达式的黑暗艺术搏斗,发现这个问题在 php 中做了类似的事情,但即使有解释,它对我来说仍然没有多大意义(并且在我复制时不起作用/粘贴到javascript中!)

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

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

4

3 回答 3

1

您应该尝试以下方法:

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

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

于 2012-05-02T11:41:00.873 回答
1

试试这个:

var pattern = /('[^']+'|[-\w]+)/g;
var text = "javascript 'sql server' vbscript";
console.log(text.match(pattern));
于 2012-05-02T11:44:39.377 回答
0

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

于 2012-05-02T11:41:54.803 回答