Javascript如何跳过基于空格分隔符的拆分,以除去后跟特定序列的空格
我想解析目标字符串Javascript如何跳过基于空格分隔符的拆分,以除去后跟特定序列的空格,javascript,regex,Javascript,Regex,我想解析目标字符串“汤基素食者无味精” 成为一个数组,[“汤”、“碱”、“素食”、“无味精”] 所以基本上是按空格解析的,除非空格跟在单词“no” 我在下面尝试了一下,结果并不完全正确: let test = "Soup base vegetarian no msg "; console.log(test.split(/([^no]\s)/g)); 我应该使用什么正则表达式来实现这样的目标 您可以使用此匹配而不是拆分: var str=“汤基素食者无味精”; var arr=str.matc
“汤基素食者无味精”
成为一个数组,[“汤”、“碱”、“素食”、“无味精”]
所以基本上是按空格解析的,除非空格跟在单词“no”
我在下面尝试了一下,结果并不完全正确:
let test = "Soup base vegetarian no msg ";
console.log(test.split(/([^no]\s)/g));
我应该使用什么正则表达式来实现这样的目标 您可以使用此
匹配
而不是拆分
:
var str=“汤基素食者无味精”;
var arr=str.match(/(?:\bno\s+)\s+/g);
控制台日志(arr);
//=>[“汤”、“基础”、“素食”、“无味精”]
基于拆分的解决方案
代码很奇怪,因为JS
let test=“汤基素食者无味精”;
var令牌=反向(测试)
.拆分(/(?!on)/g)
.filter(x=>x)
.地图(反面);
console.log(令牌);
功能反转(s){
返回s.split(“”).reverse().join(“”);
}
您可以使用此正则表达式((否)?\w+
解释:-
将匹配(否)
(带空格的否或无(?)否
将匹配单词(匹配多个字母表(a-z或a-z))\w+
var str=“汤基素食者无味精”;
var arr=str.match(/(否)?\w+/g);
控制台日志(arr)
即使没有单词边界模式,这个正则表达式似乎也能工作。\b
是的,它也能在没有单词边界的情况下工作,但是它也会匹配类似于赌场