var mystring = 'Hello test1 "test2 but one word" test3 test4 ';
var mystring_ar= mystring.split(/\s+/);
хорошо у меня это /\s+/
выражения, так что я могу отделить от пространства, но моя проблема, я хочу, чтобы отделить от пространства и регулярного выражения не должен индивидуальный слово, если слова в окружении "
, как "test2 but one word"
Например ниже:Javascript отдельно с регулярным выражением, но взять как одно слово, если строка окружена определенными символами?
'Hello test1 "test2 but one word" test3 test4 '.split(regex)
=> ['Hello','test1','test2 but one word','test3','test4']
это возможно?
Edited Я нашел половину решения, но не закончил ниже код Seperate правильно, но работает только для слов, например, если строка a/b/as d
, он не будет отделить его a/b/as and d
, он будет отделить его a,b,as,d
keywords = keywords.match(/\w+|"[^"]+"/g);
Но я думаю, что решение должно быть с split
.Это должно работать как отдельно от whitespaces
и не разделите внутри ""
Связанный: [разделить строку пробелами, сохраняя процитированные сегментов, что позволяет спасся цитаты] (https://stackoverflow.com/questions/4031900/split-a-string-by-whitespace –
@JonathanLonowski Спасибо, что решил мою проблему :) – Jake
@JonathanLonowski, но у меня возникла проблема с решением, которое я нашел в ссылке. Он использует '/ \ w + |" [^ "] +"/g ', но он принимает только слова, но мне нужно отдельно от пробелов, но если оно находится между' "asd asd asd". Оно не должно разделять их. Но это похоже на '/ \ w + |" [^ " ] + "/ g' это выражение также разделяет 't1/t2 на t1 и t2, что неверно для этой проблемы' – Jake