Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配所有单词对的Javascript正则表达式_Javascript_Regex - Fatal编程技术网

匹配所有单词对的Javascript正则表达式

匹配所有单词对的Javascript正则表达式,javascript,regex,Javascript,Regex,假设我有一个字符串:“这是一个我想配对的单词字符串” 理想情况下,我希望这样做: ["This is", "is a", "a string"....] 我有一个正则表达式: let str = "This is a string of words that I want to pair" let regexp = /\b[0-9A-Za-z]+\s+\b[0-9A-Za-z]+/g let array = [...str.matchAll(regexp)] 但它正在回归: ["This

假设我有一个字符串:“这是一个我想配对的单词字符串”

理想情况下,我希望这样做:

["This is", "is a", "a string"....]
我有一个正则表达式:

let str = "This is a string of words that I want to pair"
let regexp = /\b[0-9A-Za-z]+\s+\b[0-9A-Za-z]+/g

let array = [...str.matchAll(regexp)]
但它正在回归:

["This is", "a string", "of words"...]

如何更正此问题?

为什么要使用正则表达式来解决此问题,一个带有拆分的简单循环将非常有效:

let str=“这是我要配对的字符串”
让单词=str.split(“”);
让finalArray=[]
for(var i=0;i控制台日志(finalArray)为什么要使用正则表达式呢,一个简单的带拆分的循环就可以完美地工作了:

let str=“这是我要配对的字符串”
让单词=str.split(“”);
让finalArray=[]
for(var i=0;i控制台日志(finalArray)您可以将此正则表达式与前瞻一起使用:

/\b(\w+)(?=(\s+\w+))/g
这个正则表达式将一个单词与一个先行条件相匹配,该条件表示匹配的单词后面必须跟1+空格,后面跟着另一个单词。我们在两个单独的组中捕获匹配词和先行词,并在最终结果中连接它们

const s='这是一个我想配对的字符串';
常量regex=/\b(\w+(=(\s+\w+))/g;
var结果=[];
var-m;
while((m=regex.exec))!=null){
结果.推(m[1]+m[2]);
}

控制台日志(结果)您可以将此正则表达式与前瞻一起使用:

/\b(\w+)(?=(\s+\w+))/g
这个正则表达式将一个单词与一个先行条件相匹配,该条件表示匹配的单词后面必须跟1+空格,后面跟着另一个单词。我们在两个单独的组中捕获匹配词和先行词,并在最终结果中连接它们

const s='这是一个我想配对的字符串';
常量regex=/\b(\w+(=(\s+\w+))/g;
var结果=[];
var-m;
while((m=regex.exec))!=null){
结果.推(m[1]+m[2]);
}

控制台日志(结果)我认为类似的方法应该有效:

const s=“这是我要配对的字符串”;

log([…(s.matchAll(/[^]+(?:[^]+)?/g)))我认为类似的方法应该有效:

const s=“这是我要配对的字符串”;

log([…(s.matchAll(/[^]+(?:[^]+)?/g)))那不是OP想要的那不是OP想要的