正则表达式匹配 space 而不是 starting/ending 与 char
RegEx matching space not starting/ending with char
我需要将文本拆分为单词,但我还需要忽略 & 字符。这意味着例如单词 "h & m" 一直在一起。正则表达式也必须在 JavaScript 和 node.js.
中工作
我用了/(?!&)\s(?!&)/g
。但是忽略 space 仅在末尾带有 & 字符。
您可以使用向前看和向后看...(只需将 <
添加到您当前的正则表达式)
/(?<!&)\s(?!&)/g
^
见DEMO
解释:
- 前一个字符不是
&
.. (?<!&)
且下一个字符也不是 &
.. (?!&)
的所有空格
如果不能拆分(JS没有look-behind所以不能拆分),需要匹配:
\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"/>
我需要将文本拆分为单词,但我还需要忽略 & 字符。这意味着例如单词 "h & m" 一直在一起。正则表达式也必须在 JavaScript 和 node.js.
中工作我用了/(?!&)\s(?!&)/g
。但是忽略 space 仅在末尾带有 & 字符。
您可以使用向前看和向后看...(只需将 <
添加到您当前的正则表达式)
/(?<!&)\s(?!&)/g
^
见DEMO
解释:
- 前一个字符不是
&
..(?<!&)
且下一个字符也不是&
..(?!&)
的所有空格
如果不能拆分(JS没有look-behind所以不能拆分),需要匹配:
\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"/>