RegEx匹配空间不以char开头/结尾

时间:2015-05-09 20:55:30

标签: javascript regex node.js regex-negation

我需要将文字拆分为单词,但我还需要忽略&字符。这意味着例如“h& m”这个词保持在一起。正则表达式也必须使用JavaScript和node.js。

我使用了/(?!&)\s(?!&)/g。但是,用&只在最后的角色。

2 个答案:

答案 0 :(得分:2)

您可以使用前瞻并向后看......(只需将<添加到当前的正则表达式中)

/(?<!&)\s(?!&)/g
   ^

请参阅DEMO

说明:

  • 以前字符不是& .. (?<!&)且下一个字符的所有空格也不是& .. (?!&)

答案 1 :(得分:1)

如果你不能拆分(你不能拆分,因为JS中没有后视),你需要匹配:

\S+(?:\s&\s\S+)*

请参阅demo

代码:

var re = /(\S+(?:\s&\s\S+)*)/g; 
var str = 'H & M shopping mall';
var m = str.match(re);
document.getElementById("res").innerHTML = m;
<div id="res"/>