重复模式的javascript正则表达式

时间:2015-11-09 09:45:27

标签: javascript regex split string-split

我尝试了很多种组合,但我无法将其归零。不知道我错过了什么。从而寻求帮助。

这是想要的东西

'hello AND AND NOT there AND NOT how NOT are you'.split(new RegExp(<expression>));

一样分裂
["hello", "there", "how", "are you"]

但我无法将其归零。任何帮助表示赞赏。

这是我尝试过的。

(AND\\s+)*?NOT
(AND\\s+)+?NOT
(AND\\s+(?=(AND\\s+)+))+?NOT
AND.*NOT

修改 我很抱歉不清楚。我希望分离器为(AND(空间:零或更多时间)){整个模式为零或更多时间}(后跟NOT)

很想用普通的javascript来完成它。

2 个答案:

答案 0 :(得分:4)

基于新要求:

/(?:\s*(?:AND\s*)*)NOT\s*/

用法(使用filter清除捕获的空字符串!):

&#13;
&#13;
var str = 'hello AND AND NOT there AND NOT how NOT are you';
var x = str.split(/(?:\s*(?:AND\s*)*)NOT\s*/).filter(String);
document.write(JSON.stringify(x));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
var str = "hello AND AND NOT there AND NOT how NOT are you";
var tempArry = str.replace(/AND|NOT/g,'');
tempArry = $.trim(tempArry).split("\s+");
document.getElementById('result').innerHTML = tempArry;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="result"></p>
&#13;
&#13;
&#13;