2012-05-02 2 views
0

Я пытаюсь найти способ пролить строку на отдельные слова или фразы, где фраза заключена в кавычки. Например:Лечить фразу в кавычки как слово в javascript

Javascript 'SQL Server' VBScript

будет разбит на:

  • JavaScript
  • SQL Server
  • VBScript

я получил помощь вчера this question который разбивает строку на отдельные слова, используя

/[-\w]+/g 

Я боролся с темным искусством регулярных выражений и нашел this question, который делает подобную вещь в PHP, но даже с объяснением, что до сих пор не делает много смысла для меня (и Безразлично «т работать, когда я копировать/вставить в JavaScript!)

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

Любая помощь оценили даже указатель легко понять руководство для регулярных выражений!

+0

Это эквивалентно разборе CSV, где разделителем является пробел. Было бы лучше использовать конечный автомат. –

+0

Ничего себе, вы, ребята, быстры. Всего найдено this question, который использует: /\ w + | "[^"] + "/ g Все еще в темноте, как это работает, но это так. – Derek

ответ

1

Вы должны попробовать следующее:

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

Однако, это не сработает, если у вас есть какая-либо форма одинарных кавычек внутри ваших строк в кавычках, что означает, что вы не можете экранировать кавычки с этой конструкцией.

0

Возможно, вы могли бы попробовать это var text = ... var split = function(tx) {return tx.split("\'", } Это должно разделить его на кавычки. Затем просто используйте длину, чтобы понять ее, так как все четные индексы - это кавычки. Затем соединить нечетные индексы и сделать split(" "), чтобы слова

1

попробовать это:

var pattern = /('[^']+'|[-\w]+)/g; 
var text = "javascript 'sql server' vbscript"; 
console.log(text.match(pattern)); 
Смежные вопросы